2013-02-08 2 views
0

На MS SQL Server я хочу присоединиться к некоторым таблицам в одном select.Как присоединиться к нескольким таблицам?

Таблицы:

Трек:

Segment_ID | Track_INFO 

Segment_ID:

Segment_ID | Road_ID 

Дорога:

Road_ID | Road_INFO 

Так я хочу, чтобы выбрать информацию из трековых и дорожных таблиц. Я знаю, как присоединиться к двум столам:

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 в моем случае?

ответ

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 

также вы можете изменить "внутреннее соединение" с до "левое соединение" s в зависимости от поведения вы хотите

+0

Спасибо вам его действительно помочь мне) –

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 
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 

А также, может быть, вам нужно ЛЕВОЕ присоединение, если у вас есть нулевые метки ...

2

Старайтесь избегать соединения стола, как показано ниже, которое устарело.

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

Лучший способ присоединения таблицы используется INNER JOIN (или JOIN), LEFT JOIN, RIGHT JOIN и т.д. в зависимости от ваших требований как;

Вот некоторые хорошие graphical examples о JOINS и какие результаты они приносят

Смежные вопросы