Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 JOIN 4 таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Добрый день, друзья.
Нужна ваша помощь в след.вопросе.
Имеются 4 таблицы, которые связаны между собой по FK.
Tab1 (ID, ФИО ...),
Tab2(ID, Tab1_ID, Tab3_ID, ...),
Tab3(ID, ...),
Tab4(ID, Tell, Tab3_ID, ...)

Необходимо написать запрос, который выдаст в результате ФИО человека и его Номер телефона (Tab4.Tell).

Пробовал соединить JOIN-ми, но результат-0. Получаю пустую строку.

Надеюсь на ваши советы и помощь.
Привожу свой запрос.

SELECT Tab1.FIO, Tab4.Tell
FROM Tab1 LEFT JOIN Tab2 ON Tab1.ID = Tab2.Tab1_ID INNER JOIN
Tab3 ON Tab2.Tab3_ID = Tab3.ID LEFT JOIN
Tab4 ON Tab3.ID = Tab4.Tab3_ID
18 мар 19, 16:20    [21836190]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
londinium
Member

Откуда: Киев
Сообщений: 1170
adimmat,
ну попробуйте заменить INNER JOIN на LEFT
SELECT Tab1.FIO, Tab4.Tell
FROM Tab1 
LEFT JOIN Tab2 ON Tab1.ID = Tab2.Tab1_ID
LEFT JOIN Tab3 ON Tab2.Tab3_ID = Tab3.ID 
LEFT JOIN Tab4 ON Tab3.ID = Tab4.Tab3_ID 
18 мар 19, 16:42    [21836227]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
solbrain
Member

Откуда:
Сообщений: 2
adimmat,

select tab1.ФИО, tab4.Tell from
tab1
left join tab2 on tab2.tab1_id = tab1.id
left join tab4 on tab4.tab3_id = tab2.tab3_id
18 мар 19, 16:43    [21836229]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
solbrain,

SELECT Tab1.FIO, Tab4.Tell 
FROM Tab1 
LEFT JOIN Tab2 
  INNER JOIN Tab3 ON Tab2.Tab3_ID = Tab3.ID 
   ON Tab1.ID = Tab2.Tab1_ID
LEFT JOIN Tab4 ON Tab3.ID = Tab4.Tab3_ID
18 мар 19, 16:50    [21836245]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
solbrain
Member

Откуда:
Сообщений: 2
Владислав Колосов,
Жуть какая... А зачем вообще джоинить таб3, если в ней нет нужной информации? Чисто проверить записи на существование?
18 мар 19, 17:18    [21836299]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Огромное спасибо Всем за помощь.

По поводу джойна 3-й таблицы, она основная таблица по которой идет связь между Tab1, Tab2 с Tab4, в которой находятся телефонные номера.

Хочу узнать друзья, в результате этих джойнов, возможна же попадание NULL-вых значения в результат!?
Нужно ли об этом "позаботиться" или с этим ничего не поделать?

Спасибо!
18 мар 19, 17:31    [21836313]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Еще один вопрос:
Если у человека несколько номеров, как в таком случае может себя повести запрос?

Спасибо!
18 мар 19, 17:37    [21836323]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
solbrain,

в каком смысле жуть? Так автор захотел, я переписал его запрос в другом виде.
18 мар 19, 17:42    [21836331]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31367
adimmat
Если у человека несколько номеров, как в таком случае может себя повести запрос?
Выведет для каждого человека несколько номеров. То есть будет несколько строк для каждого такого человека.
18 мар 19, 18:11    [21836384]     Ответить | Цитировать Сообщить модератору
 Re: JOIN 4 таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
alexeyvg, Так и подумал. )
Огромное Вам спасибо!
18 мар 19, 18:22    [21836396]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить