根据是否存在连接更新列 - SQLITE

时间:2015-11-04 21:23:37

标签: join sqlite sql-update

我似乎无法在SQLITE中使用它。

如果某行匹配连接存在,则尝试添加1;如果不存在,则尝试添加0。

我认为代码会为那些匹配的行添加1,但它只是在所有内容中添加1而不管匹配:

update tbl1
SET has_data = 1
where exists(
    SELECT *
    FROM tbl1
    join tbl2 on tbl2.r_num = tbl1.r_num
)

我已经看过一些案例的例子,我无法想出如何写一个在这种情况下可能有用的应用0或1?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

子查询中的tbl1是表的一个独立实例,因此如果{{1}中 ,那么EXISTS为真匹配。

要引用原始表,只是不要引入另一个表实例:

tbl1

或者,这可以写成:

UPDATE tbl1
SET has_data = 1
WHERE EXISTS (SELECT *
              FROM tbl2
              WHERE r_num = tbl1.r_num);