Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / JOIN 4 таблиц. / 10 сообщений из 10, страница 1 из 1
18.03.2019, 16:20
    #39787895
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
Добрый день, друзья.
Нужна ваша помощь в след.вопросе.
Имеются 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
...
Рейтинг: 0 / 0
18.03.2019, 16:42
    #39787918
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
adimmat,
ну попробуйте заменить INNER JOIN на LEFT
Код: sql
1.
2.
3.
4.
5.
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 
...
Рейтинг: 0 / 0
18.03.2019, 16:43
    #39787919
solbrain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
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
...
Рейтинг: 0 / 0
18.03.2019, 16:50
    #39787928
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
solbrain,

Код: sql
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
18.03.2019, 17:18
    #39787960
solbrain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
Владислав Колосов,
Жуть какая... А зачем вообще джоинить таб3, если в ней нет нужной информации? Чисто проверить записи на существование?
...
Рейтинг: 0 / 0
18.03.2019, 17:31
    #39787967
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
Огромное спасибо Всем за помощь.

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

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

Спасибо!
...
Рейтинг: 0 / 0
18.03.2019, 17:37
    #39787974
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
Еще один вопрос:
Если у человека несколько номеров, как в таком случае может себя повести запрос?

Спасибо!
...
Рейтинг: 0 / 0
18.03.2019, 17:42
    #39787980
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
solbrain,

в каком смысле жуть? Так автор захотел, я переписал его запрос в другом виде.
...
Рейтинг: 0 / 0
18.03.2019, 18:11
    #39788004
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
adimmatЕсли у человека несколько номеров, как в таком случае может себя повести запрос?Выведет для каждого человека несколько номеров. То есть будет несколько строк для каждого такого человека.
...
Рейтинг: 0 / 0
18.03.2019, 18:22
    #39788012
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 4 таблиц.
alexeyvg, Так и подумал. )
Огромное Вам спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / JOIN 4 таблиц. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]