2011-02-17 51 views
0

我試圖做多參加這樣的多加入MySQL的

SELECT * FROM (((Customer FULL JOIN Booking ON Customer.ID = Booking.CustID) 
FULL JOIN Flight ON Booking.FlightID = Flight.ID) 
FULL JOIN FlightRoute ON Flight.RouteID = FlightRoute.ID) 

但根據MySQL的語法不正確。請幫忙

+0

你到底做的,你得到了什麼錯誤? – Nanne 2011-02-17 16:38:08

回答

2

MySQL中沒有FULL JOIN。這是複雜的,但FULL JOIN相當於UNION ALL之間LEFT JOINRIGHT JOIN,使用條件刪除重複。現在已經很晚了,在那個聲明中想到你正在傷害我的頭。

你在Conrad Frix的回答中說,如果刪除了FULL就可以工作,如果確實如此,那麼您已經誤解了FULL JOININNER JOIN的工作原理。

對於第一FULL JOIN它會是什麼樣子:

SELECT * FROM Customers c 
    LEFT JOIN Booking b ON c.ID = b.CustId 
UNION ALL 
SELECT * FROM Customers c 
    RIGHT JOIN Booking b ON c.ID = b.CustId 
WHERE c.ID IS NULL 

使用此基礎上形成的語句的其餘部分。