使用update连接2个表,但只连接具有匹配值的行

时间:2015-08-05 14:55:13

标签: sqlite join sql-update

我有两张桌子,我希望加入。
我没有使用外键。

表格结构表1 ID,VAL1

表格结构表2 ID,val2的

我现在正在使用以下命令:

update table1 set val1=(SELECT val2 FROM table2 WHERE table1.id LIKE table2.id)

如果table2中不存在id,我如何强制sqlite不在table1中插入值?

1 个答案:

答案 0 :(得分:0)

要使用精确比较,请使用=代替LIKE

要仅更新找到匹配项的行,请使用WHERE子句:

UPDATE Table1
SET val1 = (SELECT val2
            FROM Table2
            WHERE Table1.id = Table2.id)
WHERE id IN (SELECT id FROM Table2);

如果省略WHERE子句,则不使用NULL值更新没有匹配的行。