2014-02-20 42 views
-1

我有其中您可以查看这里的样本数据库的列表:https://class.stanford.edu/c4x/Engineering/db/asset/socialdata.html显示学生,其中两名学生喜欢对方在SQL

,我试图写,做以下的SQL语句:显示一个列表的学生,两个学生都喜欢对方。

这是我的代码:

SELECT A.name, B.name, C.name, D.name 
FROM Highschooler A, Highschooler B, Highschooler C, Highschooler D, Likes L 
WHERE A.ID = L.ID1 AND B.ID = L.ID2 AND C.ID = L.ID2 AND D.ID = L.ID1 AND A.name < B.name AND D.name < C.name 
ORDER BY A.name, B.name, C.name, D.name ASC; 

我不知道它是否显示正确的,这是我所得到的:

Alexis  Kris  Kris  Alexis 
Andrew  Cassandra Cassandra Andrew 
Austin  Jordan  Jordan  Austin 
Brittany Kris  Kris  Brittany 
Cassandra Gabriel  Gabriel  Cassandra 
Jessica  Kyle  Kyle  Jessica 
+0

为什么Highschooler的四个实例? A和B就足够了。 – rendon

+0

嗯,我需要证明两个学生都喜欢对方,所以A必须喜欢B,但B也必须喜欢A.多数民众赞成在问题大声笑 – TheGreatDragon

回答

0

我要说的是,你正在寻找的是一样的东西:

select A.name || ' likes ' || B.name 
from Highschooler A 
join likes   on A.id = Likes.ID1 
join Highschooler B on B.id = Likes.ID2 
+0

这是我所得到的:加布里埃尔喜欢卡桑德拉 卡桑德拉喜欢加布里埃尔 安德鲁喜欢卡桑德拉 布列塔尼喜欢克里斯 亚历克西斯喜欢克里斯 奥斯汀喜欢乔丹 加布里埃尔喜欢亚历克西斯 杰西卡喜欢凯尔 约翰喜欢海利 凯尔喜欢杰西卡 – TheGreatDragon

+0

它不完全是我所需要的前两个是正确的,但其他人不 – TheGreatDragon

+0

你应该得到共有10个结果。与表中的一样。 – Bruno