我有一个名为“ Books”的表,它具有以下结构和记录:
+--------+----------------------------+----------+
| BookID | BookName | Language |
+--------+----------------------------+----------+
| 1 | Le Comte de Monte-Cristo | FR |
| 1 | The Count of Monte Cristo | EN |
| 2 | Les Trois Mousquetaires | FR |
| 2 | The Three Musketeers | EN |
+--------+----------------------------+----------+
我想根据ID从EN覆盖FR图书名称。
我有一个有效的SQL Server查询,但是当我尝试在PHPMyAdmin(MySQL)数据库上运行它时,出现错误:
您的SQL语法有误
MS SQL Server查询:
UPDATE
a
SET
BookName = B.BookName
FROM
Books a
CROSS JOIN Books b
WHERE
a.Language = 'FR' AND
b.Language = 'EN' AND
a.BookID = b.BookID
有人可以告诉我问题出在哪里吗?
谢谢你。
我没有尝试过,但是我猜您想要的语句是:
UPDATE Books A
JOIN Books B ON A.BookID = B.BookID
SET A.BookName = B.BookName
WHERE A.Language='FR' AND B.Language='EN'
Across join
制作笛卡尔积,在您的示例中,您有一个where
引用每个表的子句,它将变成一个inner join
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句