sqlite3,如何正确使用子查询

时间:2018-10-31 15:01:57

标签: sql sqlite subquery delete-record

我是sql查询的初学者,请解释一下如何解决此类问题。

问题,可以说我有2张桌子:

Table A: has a_id_1, a_id_2
Table_B: has b_id_1, b_id_2

这些表具有这样的记录:

Table A: has (1,2)
Table A: has (4,5)
Table A: has (7,10)

Table B: has (1,2)
Table B: has (2,1)
Table B: has (7,1)
Table B: has (4,10)
Table B: has (1,10)
Table B: has (10,1)

所以,我的问题是,如何编写查询以基于表A从表B中删除记录,并且如果表B记录:b_id_1!= b_id_2和b_id_2!= b_id_1删除此类记录。

我想我必须使用子查询,但是我不确定在这种情况下如何正确使用它。

我正在使用sqlite3。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用not exists,如下所示:

delete from b
where not exists (select 1 from a where b.b_id_1 = a.b_id_2 and b.b_id_2 = a.b_id_1);

您的列名和示例有些混乱,但这是基本思想。