我正在尝试使用相同的值更新2个表中的字段 - 预订(tbl) - dropOffLocation和cars(tbl) - currentbranch。
我可以通过以下两个更新语句获得所需的结果:
UPDATE bookings b SET b.dropOffLocation = 'London' WHERE b.regNumber = 'AX03PFF'
UPDATE cars c SET c.currentBranch = 'London' WHERE c.regNumber = 'AX03PFF'
但是,我想使用JOIN将2个更新语句合并为一个。 我已经尝试过下面的sql,但它没有做任何事情。
UPDATE
bookings b JOIN cars c
SET
b.dropOffLocation = 'London'
AND c.currentBranch = 'London'
WHERE b.regNumber = 'EP59YMP' AND c.regNumber = 'EP59YMP'
有人可以帮我修改join语句以使其正常工作。
谢谢!
答案 0 :(得分:3)
你的语法有点偏。在,
子句中使用AND
代替UPDATE SET
。我没有将两个表放入WHERE
子句,而是在ON
中添加了一个等效的JOIN
子句,它更具可读性,因为它直接表示了表之间的关系。
UPDATE
bookings b JOIN cars c ON b.regNumber = c.regNumber
SET
b.dropOffLocation = 'London',
c.currentBranch = 'London'
WHERE b.regNumber = 'EP59YMP'
答案 1 :(得分:0)
UPDATE
bookings b JOIN cars c
on b.regNumber = c.regNumber
SET
b.dropOffLocation = 'London',
AND c.currentBranch = 'London',
WHERE b.regNumber = 'EP59YMP' AND c.regNumber = 'EP59YMP';
答案 2 :(得分:0)
试试这个:
UPDATE FROM bookings AS b
LEFT JOIN cars AS c ON c.regNumber = b.regNumber
SET b.dropOffLocation = 'London' AND c.currentBranch = 'London'
WHERE b.regNumber = 'EP59YMP'