Php 使用join更新语句

Php 使用join更新语句,php,mysql,join,Php,Mysql,Join,我正在尝试更新两个表中具有相同值的字段-bookings(tbl)-dropOffLocation和cars(tbl)-currentbranch 我可以通过下面的2条更新语句获得所需的结果: UPDATE bookings b SET b.dropOffLocation = 'London' WHERE b.regNumber = 'AX03PFF' UPDATE cars c SET c.currentBranch = 'London' WHERE c.regNumber = 'AX03PF

我正在尝试更新两个表中具有相同值的字段-bookings(tbl)-dropOffLocation和cars(tbl)-currentbranch

我可以通过下面的2条更新语句获得所需的结果:

UPDATE bookings b SET b.dropOffLocation = 'London' WHERE b.regNumber = 'AX03PFF'
UPDATE cars c SET c.currentBranch = 'London' WHERE c.regNumber = 'AX03PFF'
但是,我想使用JOIN将这两条update语句组合成一条语句。 我已经尝试了下面的sql,但它没有任何作用

UPDATE 
  bookings b JOIN cars c
SET 
  b.dropOffLocation = 'London' 
  AND c.currentBranch = 'London' 
WHERE b.regNumber = 'EP59YMP' AND c.regNumber = 'EP59YMP'
有人能帮我修改join语句使其正常工作吗


谢谢

您的语法有点错误。在
更新集
子句中使用
而不是
。我没有将两个表都放在
WHERE
子句中,而是在
JOIN
子句中添加了一个等效的
ON
子句,该子句更具可读性,因为它直接说明了表之间的关系

UPDATE 
  bookings b JOIN cars c ON b.regNumber = c.regNumber
SET 
  b.dropOffLocation = 'London',
  c.currentBranch = 'London'
WHERE b.regNumber = 'EP59YMP'
试试这个:

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'

看看这个问题——通过说“什么都没做”,再加上PHP标记,我们怀疑您在检查查询执行时没有出错。如果使用
mysql\u query()
,请在查询失败时
echo mysql\u error()
,查看出了什么问题。+1。但我认为更大的问题是OP似乎没有检查SQL错误,因此语法无效的SQL语句只是“没有做任何事情”。
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'