我是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。
非常感谢您的帮助。
答案 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);
您的列名和示例有些混乱,但这是基本思想。