MySQL SET UPDATE

时间:2018-06-05 09:54:52

标签: mysql

我有两张桌子,让他们称之为宠物和主人。两个表都有一个名为country_id的列,无论出于什么原因,在某些地方有Pets.Country_ID不等于Owners.Country_ID(它们应该匹配)。

为了解决这个问题,我运行了以下内容:

UPDATE pets
INNER JOIN owners ON owners.id = pets.owner_id
SET pets.country_id = IF(owners.country_id != pets.country_id, 
pets.country_id, owner.country_id)
WHERE pets.country_id != owners.country_id

这是对的吗?我已经运行了查询,但我仍然得到不匹配的结果。

1 个答案:

答案 0 :(得分:1)

这是因为你的if条款完全没必要,是错误的。只需删除它

UPDATE pets
INNER JOIN owners ON owners.id = pets.owner_id
SET pets.country_id = owners.country_id
WHERE pets.country_id != owners.country_id