Php 使用join更新语句
我正在尝试更新两个表中具有相同值的字段-bookings(tbl)-dropOffLocation和cars(tbl)-currentbranch 我可以通过下面的2条更新语句获得所需的结果: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
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'