【发布时间】:2013-08-23 00:20:53
【问题描述】:
我正在尝试从 SQL 中的表中删除几行。问题是我无法弄清楚如何使用子查询的结果从该表中删除,因为该表中没有主键。表结构如下:
Friend ( ID1, ID2 )
ID1 的学生是ID2 的学生的朋友。友谊是相互的,所以如果(123, 456) 在Friend 表中,那么(456, 123) 也是。
Likes ( ID1, ID2 )
ID1 的学生喜欢ID2 的学生。喜欢某人不一定是相互的,所以如果 (123, 456) 在 Likes 表中,则不能保证 (456, 123) 也存在。
(No primary key)
我要解决的情况是:
“如果两个学生 A 和 B 是朋友,并且 A 喜欢 B 但反之不喜欢,则删除 Likes 元组。”
提前致谢。
【问题讨论】:
-
哪个数据库? Mysql、Postgres、SQL Server?
-
如果 Likes 中有重复行,学生 A like 是否喜欢学生 B?
-
@supergrady,A学生只喜欢B一次,即没有条件像A喜欢B两次,但A可以喜欢更多的人喜欢C或D。