-2
具有不同表的朋友
我有以下問題:朋友在SQL
讓我們考慮一個社交網絡的情況:在同一個郵輪旅遊的乘客都被認爲是「朋友」,找到道格拉斯的朋友的朋友。
我試着使用下面的代碼解決它,但它不工作。它會返回道格拉斯和他的朋友,而不是道格拉斯朋友朋友的巡洋艦。
SELECT PASSENGERNUM
FROM VOYAGE
WHERE CRUISENUM
IN (
SELECT CRUISENUM
FROM VOYAGE
WHERE PASSENGERNUM
IN (
SELECT PASSENGERNUM
FROM PASSENGER
WHERE PASSENGERNAME != 'Douglas'
AND PASSENGERNAME
IN (
SELECT PASSENGERNAME
FROM PASSENGER
WHERE PASSENGERNUM
IN (
SELECT PASSENGERNUM
FROM VOYAGE
WHERE CRUISENUM
IN (
SELECT CRUISENUM
FROM VOYAGE
WHERE PASSENGERNUM
IN (
SELECT passengernum
FROM PASSENGER
WHERE passengername = 'Douglas'
)
)
)
)
)
)
這是我得到了這是隻有道格拉斯和他的朋友的passengernum改爲只道格拉斯的朋友passangernum
PASSENGERNUM
11797
11797
11797
12345
12345
這是數據庫表(乘客,航程): http://i.stack.imgur.com/S0I8D.png
我建議花一些時間熟悉使用[JOINs in SQL](http://www.sitepoint.com/understanding-sql-joins-mysql-database)......它會使解決這個問題變得非常多更清潔/更簡單。 – 2015-04-01 23:28:51
請編輯問題幷包含證明問題的測試數據。謝謝。 – 2015-04-01 23:35:56
這個問題雖然可能很少解釋和提出,但仍然相當有趣 – 2015-04-02 01:38:53