Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных. / 5 сообщений из 5, страница 1 из 1
24.04.2013, 11:42
    #38237847
Torrero11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных.
Друзья, есть две таблицы, связанные между собой промежуточной таблицей:

Требуется создать представление, в котором отражались бы все записи первой таблицы, даже если они никак не связаны со второй таблицей.
Другими словами, запрос должен возвращать всех сотрудников, а не только тех, которые состоят в отделах.

Мой запрос выдаёт следующее:
Код: sql
1.
2.
3.
4.
SELECT        dbo.otdel.otdel_name, dbo.worker.wrk_name, dbo.worker_in_otdel.otdel_id, dbo.worker_in_otdel.wrk_id
FROM            dbo.otdel INNER JOIN
                         dbo.worker_in_otdel ON dbo.otdel.otdel_id = dbo.worker_in_otdel.otdel_id INNER JOIN
                         dbo.worker ON dbo.worker_in_otdel.wrk_id = dbo.worker.wrk_id




Друзья, что не так делаю? Возможен ли, вообще, такой запрос? Если нет, то возможно ли решить задачу с помощью хранимых функций в Microsoft SQL Server 2012 Express?
...
Рейтинг: 0 / 0
24.04.2013, 11:48
    #38237864
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных.
Torrero11,

LEFT JOIN
...
Рейтинг: 0 / 0
24.04.2013, 11:55
    #38237882
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных.
Код: sql
1.
2.
3.
4.
SELECT        dbo.otdel.otdel_name, dbo.worker.wrk_name, dbo.worker_in_otdel.otdel_id, dbo.worker_in_otdel.wrk_id
FROM            dbo.worker LEFT JOIN
                         dbo.worker_in_otdel ON dbo.worker .wrk_id= dbo.worker_in_otdel.wrk_id 
INNER JOIN dbo.otdel ON dbo.worker_in_otdel.otdel_id= dbo.otdel .otdel_id
...
Рейтинг: 0 / 0
24.04.2013, 12:09
    #38237913
Torrero11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных.
Друзья, спасибо!!!
Naf, ваш запрос, к сожалению, возвращает то же, что и мой. Но суть ясна, будем мучать LEFT JOIN :) Спасибо!
...
Рейтинг: 0 / 0
24.04.2013, 13:02
    #38238048
Torrero11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных.
Кому интересно, задачу решил с помощью RIGHT JOIN (принцип тот же, что и у LEFT JOIN):
Код: sql
1.
2.
3.
4.
SELECT        dbo.worker.wrk_name, dbo.worker_in_otdel.otdel_id, dbo.worker.wrk_id, dbo.otdel.otdel_name
FROM            dbo.otdel INNER JOIN
                         dbo.worker_in_otdel ON dbo.otdel.otdel_id = dbo.worker_in_otdel.otdel_id RIGHT OUTER JOIN
                         dbo.worker ON dbo.worker_in_otdel.wrk_id = dbo.worker.wrk_id

...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Простая связь М:М, как сделать запрос для отражения всех записей, даже не связанных. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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