在PHP中,SELECT语句返回true,用其主键更新另一个表

时间:2011-06-30 11:29:20

标签: php mysql sql sql-update

我有两个表(artartlocation),它们共有三列(seriesstylelocation)。我想要做的是确定所有三个字段是否在BOTH表中完全匹配,然后UPDATE其中一个表(作为外键)与另一个表的主键匹配。

这是我跑来确定是否匹配的查询:

SELECT * FROM 'artlocation'  
  JOIN 'art' ON artlocation.series = art.series
  WHERE artlocation.style = art.style
    AND artlocation.location = art.location;

我想要做的是从“artlocation”表中的任何匹配中获取主键并更新“art”表外键字段。但我无法弄清楚这一点:(

请帮助......提前谢谢!!

2 个答案:

答案 0 :(得分:1)

如果我理解你的意思正确我认为它会起作用

Update art 
    LEFT JOIN artlocation al ON al.series = art.series 
SET [ Your Columns Here ]  
WHERE al.style = art.style AND al.location = art.location

答案 1 :(得分:1)

如果我理解你的问题,你需要一个多表UPDATE。您可以在UPDATE

的表格部分中使用JOIN
UPDATE art
  JOIN artlocation ON art.series = artlocation.series 
                  AND art.style = artlocation.style 
                  AND art.location = artlocation.location
  SET art.location = artlocation.id