多加入MySQL的

问题描述:

我试图做多参加这样的多加入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

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 

使用此基础上形成的语句的其余部分。

当我正在寻找MySql和FULL Join时,我发现这篇文章解释了一些在Mysql中模拟FULL JOIN的方法。我认为这可能对你有用。

How to simulate FULL OUTER JOIN in MySQL

MySQL是不是我的专长的领域,但我不认为MySQL支持全连接。我找到了一个简单的文章,详细介绍了一些替代品

http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/