2014-02-20 64 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