我是sql查询的初学者,请解释一下如何解决这个问题。
问题,假设我有两张桌子:
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。
非常感谢你的帮助。
您可以使用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);
您的列名和示例有点令人困惑,但这是基本思想。