0

MS SQL Server では、いくつかのテーブルを 1 回の選択で結合したいと考えています。

テーブル:

追跡:

Segment_ID | Track_INFO

セグメント ID:

Segment_ID | Road_ID

道:

Road_ID | Road_INFO

だから私はトラックと道路のテーブルから情報を選択したい. 2 つのテーブルを結合する方法を知っています。

    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

しかし、私の場合、JOIN を作成する方法は?

4

4 に答える 4

5

これを試して:

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

また、Null マークがある場合は LEFT 結合が必要かもしれません...

于 2013-02-08T11:27:28.727 に答える
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

また、必要な動作に応じて、「内部結合」を「左結合」に変更することもできます

于 2013-02-08T11:26:06.693 に答える
2

これを試して:

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
于 2013-02-08T11:26:26.267 に答える
2

以下のように、現在は廃止されているテーブルの結合を避けるようにしてください。

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

以下は、JOINSとそれらがもたらす結果に関するいくつかの優れたグラフィカルな例です。

于 2013-02-08T11:36:52.920 に答える