我有5个表需要查询,但我不确定该怎么做。我在考虑使用多个内部连接,但是却抛出了很多错误。
下面是我想要做的一个例子:
表:
Customer
ID Name State hotelID
1 George W.A 1
2 Franklin N.S.W 2
Bus
ID Make
1 Hino
2 Mercedes
3 Leyland
Hotel
ID Name
1 Hyatt
2 Sebel
Tour
ID tourName busID
1 Japan 1
2 America 1
3 Austria 2
tour-CustLink
ID tourID custID
1 1 1
2 2 2
3 3 3假设查询是列出住在凯悦酒店并乘坐日野公交车的客户的姓名和状态,我该如何着手呢?
表并不是我实际使用的,我只是喜欢在这样的示例中使用它,并且有很多代码需要添加。
发布于 2013-05-03 00:48:47
就像这样..。
SELECT c.Name, c.State
FROM tourCustLink AS tcl
INNER JOIN Customer AS c ON tcl.custID = c.ID
INNER JOIN Hotel AS h on c.hotelID = h.ID
INNER JOIN Tour AS t on tcl.tourID = t.ID
INNER JOIN Bus AS b on t.busID = b.ID
WHERE h.Name = 'Hyatt'
AND b.Make = 'Hino'但要注意这并不是最优化的。真的有点为时过早... 8-)
发布于 2013-05-03 00:48:58
你可以继续JOIN他们...
这可能会出现重复,这取决于您的数据,例如,如果客户住了多个酒店或进行了多次旅游,则可能需要对其进行重组,或者在SELECT后面添加DISTINCT子句。
SELECT
c.[name]
,c.[state]
FROM
Customer AS c
JOIN
Hotel AS h
ON h.[ID] = c.[hotelID]
JOIN
tour-CustLink AS tcl
ON tcl.[CustID] = c.[ID]
JOIN
Tour AS t
ON t.[ID] = tcl.[tourID]
JOIN
Bus AS b
ON b.[ID] = t.[BusID]
WHERE
b.[Make] = 'Hino'
AND h.[name] = 'Hyatt'https://stackoverflow.com/questions/16343386
复制相似问题