【发布时间】:2019-04-04 19:12:15
【问题描述】:
我是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。
非常感谢您的帮助。
【问题讨论】:
-
我无法确定您是否真的有两个表,或者您是否正在尝试删除
b中的“反转”重复项。 -
这里是不同的例子:表格:高中生(ID int,name text,grade int);朋友(ID1 整数,ID2 整数);喜欢(ID1 int,ID2 int);资料:朋友:(1689、1709);朋友:(1501、1934);朋友:(1316、1934);喜欢:(1689、1709);喜欢:(1709、1689);喜欢:(1782、1709);如果两个学生 A 和 B 是朋友,并且 A 喜欢 B 但反之不喜欢,则删除 Likes 元组。谢谢。
标签: sql sqlite subquery delete-record