SQLite删除{A,B}和{B,A}的集合

时间:2013-02-03 06:09:09

标签: sql select tuples set

有人可以帮我查询一个SQL查询表,例如

Col A | Col B
-------------
A       B
C       D
E       F
B       A

如何删除{B,A}或选择{B,A}

问题是:

If two students A and B are friends, and A likes B but not vice-versa,
remove the Likes tuple.

我已经找到了A和B是朋友而A喜欢B的桌子,但我不知道如何删除B喜欢A元组

我有

select friend.id1, friend.id2
from friend, likes
where friend.id1 = likes.id1 and friend.id2 = likes.id2

2 个答案:

答案 0 :(得分:1)

我之前看过这个家庭作业......

DELETE FROM Likes
WHERE ID1 IN (SELECT L.ID1
                       FROM Friend F,Likes L
                       WHERE F.ID1 = L.ID1 AND F.ID2 = L.ID2
                       AND F.ID1 NOT IN (SELECT ID2 
                                         FROM Likes
                                         WHERE ID1=L.ID2 AND ID2=L.ID1))

尝试自己解决这些问题 - 或者如果不能,请尝试搜索Google。

答案 1 :(得分:0)

DELETE FROM friends f1
WHERE NOT EXISTS (
    SELECT *
    FROM friends f2
    WHERE f2.a = f1.b AND f2.b = f1.a
    );

注意:这可能在mysql中工作,因为它不允许在子查询中引用目标表。