我有两个表address
和actor
。我必须更新参与者的地址(address
表中的列),其act_id(在actor
表中)为36。
下面的查询会有同样的效果吗?
使用JOIN:
UPDATE `address`
INNER JOIN actor ON actor.address_id=address.address_id
SET `address`="677 Jazz Street"
WHERE actor.actor_id=36
使用子查询:
UPDATE address
SET address = "677 Jazz Street"
WHERE
(SELECT address_id FROM actor
WHERE actor_id = 36);
我为什么要问的是,当我执行子查询时,它显示620行受到影响,而AS Join查询只显示1匹配0受影响(这是可以理解的,因为我已经使用子查询进行了更新),但为什么显示620行?
1条答案
按热度按时间w3nuxt5m1#
No, because you're not correlating the subquery with the main table. You need a comparison in the
WHERE
condition.