首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对2个以上的表进行内连接

对2个以上的表进行内连接
EN

Stack Overflow用户
提问于 2013-05-03 00:42:04
回答 2查看 70关注 0票数 0

我有5个表需要查询,但我不确定该怎么做。我在考虑使用多个内部连接,但是却抛出了很多错误。

下面是我想要做的一个例子:

表:

代码语言:javascript
复制
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

假设查询是列出住在凯悦酒店并乘坐日野公交车的客户的姓名和状态,我该如何着手呢?

表并不是我实际使用的,我只是喜欢在这样的示例中使用它,并且有很多代码需要添加。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 00:48:47

就像这样..。

代码语言:javascript
复制
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-)

票数 3
EN

Stack Overflow用户

发布于 2013-05-03 00:48:58

你可以继续JOIN他们...

这可能会出现重复,这取决于您的数据,例如,如果客户住了多个酒店或进行了多次旅游,则可能需要对其进行重组,或者在SELECT后面添加DISTINCT子句。

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16343386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档