我想要做的是比较两个表,并在tableb中执行update,其中列与同一列不匹配。
我知道在SQL中这是
update tableb
set myInt = 1
where tableA.Column <> tableb.columnMySQL是怎么做到的呢?
基本上,我想做的就是tableA在tableB更新tableB中没有相同的值。
发布于 2011-05-22 04:43:54
使用:
UPDATE tableB
SET tableB.MyInt = 1
WHERE NOT EXISTS (SELECT NULL
FROM tablea a
WHERE a.column = TableB.Column)...which也可以写成:
UPDATE TABLE_B
LEFT JOIN TABLE_A ON TABLE_A.COLUMN = TABLE_B.COLUMN
SET TABLE_B.myint = 1
WHERE TABLE_A.COLUMN IS NULL发布于 2011-05-22 04:24:34
您需要将这两个表连接起来。
UPDATE tableB
INNER JOIN tableA on (TableA.id = TableB.id)
SET tableB.MyInt = 1 WHERE TableA.`Column` != TableB.`Column`匹配id的联接看起来是合乎逻辑的,因为
JOIN tableA on (tableA.`column` != tableB.`column`) 会做很多像交叉连接这样的事情,这可能不是你所期望的。
请注意,column是MySQL中的保留字,需要用反引号括起来:`
发布于 2011-05-22 04:20:34
您应该能够使用join来做到这一点。
UPDATE TABLEB
FROM TABLEB
INNER JOIN TABLEA ON TABLEA.COLUMN!=TABLEB.COLUMN
SET myINT=1https://stackoverflow.com/questions/6084207
复制相似问题