我想要做的是比较两个表,并在tableb中执行更新,其中列与同一列不匹配。
我在SQL中知道这是
update tableb
set myInt = 1
where tableA.Column <> tableb.column
这是怎么做的MySQL?
基本上我想做的就是tableA在tableB更新tableB中没有相同的值。
答案 0 :(得分:1)
您需要加入这两个表。
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中的保留字,需要用反引号括起来:`
答案 1 :(得分:0)
您应该可以通过加入来完成此操作。
UPDATE TABLEB
FROM TABLEB
INNER JOIN TABLEA ON TABLEA.COLUMN!=TABLEB.COLUMN
SET myINT=1
答案 2 :(得分:0)
使用:
UPDATE tableB
SET tableB.MyInt = 1
WHERE NOT EXISTS (SELECT NULL
FROM tablea a
WHERE a.column = TableB.Column)
......也可以写成:
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
答案 3 :(得分:-1)
运营商!=
而非<>
试试这个。
update tableb set myInt = 1 where tableA.Column!=tableb.column
编辑:哎呀我完全忽略了连接部分。看一下这个回答。