【问题标题】:How to JOIN several tables?如何JOIN几个表?
【发布时间】:2013-02-08 19:42:43
【问题描述】:

在 MS SQL Server 上,我想在一次选择中加入一些表。

表格:

跟踪:

Segment_ID | Track_INFO

Segment_ID:

Segment_ID | Road_ID

道路:

Road_ID | Road_INFO

所以我想从 Track and Road 表中选择信息。我知道如何连接两个表:

    SELECT  

    Segment_ID = T1.Segment_ID,
    Track = T1.Track,
    --Road_ID = Segment_ID.Road_ID


FROM dbo.Track T1,dbo.Road T2
LEFT JOIN Segment_ID Segment_ID ON Segment_ID.Segment_ID = T1.Segment_ID
--LEFT JOIN Road Road_ID ON Road.Road_ID = Segment_ID.Road_ID

但是在我的情况下如何加入呢?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    试试这个:

    SELECT Track.Track_INFO, Road.Road_INFO
    FROM Track 
    INNER JOIN Segment_ID ON Segment_ID.Segment_ID = Track.Segment_ID
    INNER JOIN Road ON Segment_ID.Road_ID = Road.RodaID
    

    另外,如果你有空标记,也许你需要 LEFT 加入...

    【讨论】:

      【解决方案2】:
      select * 
      from Track inner join Segment_ID on Track.Segment_ID = Segment_ID.Segment_ID
       inner join Road on Segment_ID.Road_ID = Road.Road_ID
      

      您也可以根据您想要的行为将“内连接”更改为“左连接”

      【讨论】:

      • 谢谢你对我的帮助)
      【解决方案3】:

      试试这个:

      SELECT  t.*, r.* 
      FROM track t 
      INNER JOIN segment s ON t.Segment_ID = s.Segment_ID 
      INNER JOIN road r ON s.Road_ID = s.Road_ID
      

      【讨论】:

        【解决方案4】:

        尽量避免如下表连接,现在已经过时了。

        FROM Table1 T1, Table2 T2
        WHERE T1.id = T2.id
        

        加入表格的更好方法是使用INNER JOIN(或JOIN)、LEFT JOINRIGHT JOIN取决于您的要求喜欢;

        SELECT * --Or you can get required list of columns using table aliases (t,s,r)
        FROM dbo.Track t JOIN dbo.Segment_ID s ON t.Segment_ID = s.Segment_ID
                 JOIN dbo.Road r ON s.Road_ID = r.Road_ID
        

        这里有一些很好的 graphical examples@JOINS 以及它们带来的结果

        【讨论】:

          猜你喜欢
          • 2017-10-20
          • 2020-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-03
          • 2018-03-18
          • 2015-02-27
          相关资源
          最近更新 更多