powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос на выборку из таблицы если чего то нет в другой таблице
3 сообщений из 3, страница 1 из 1
Запрос на выборку из таблицы если чего то нет в другой таблице
    #40107872
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как лучше написать такой запрос:

Есть таблица T1 (F0,F1,F2,F3)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
F0  F1  F2  F3
---------------
1   A   22  33
2   A   22  33
3   A   22  33
1   B   24  35
2   B   24  35
3   B   24  35
4   B   24  35
5   B   24  35
1   С   26  31
2   С   26  31


Есть таблица T2 (F0):

Код: sql
1.
2.
3.
4.
5.
6.
7.
F0
--
1
2
3
4
5


Нужно вывести все строки из T1, сруппированные по полям F1,F2,F3 если для группы нет строки из T2 по полю F0.

т.е. для данного примера нужно вывести следующее:

Код: sql
1.
2.
3.
4.
5.
6.
7.
F0  F1  F2  F3
---------------
1   A   22  33
2   A   22  33
3   A   22  33
1   С   26  31
2   С   26  31


не выводим группу:

Код: sql
1.
2.
3.
4.
5.
6.
7.
F0  F1  F2  F3
---------------
1   B   24  35
2   B   24  35
3   B   24  35
4   B   24  35
5   B   24  35


потому что все 5 есть в T2
...
Рейтинг: 0 / 0
Запрос на выборку из таблицы если чего то нет в другой таблице
    #40107891
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter,

гугли "реляционное деление"
там вариантов хватает, но, т.с. самый "вменяемый"/"очевидный" типа такого
Код: sql
1.
2.
3.
4.
5.
6.
select
  F1,  F2,  F3
from T1 inner join T2 on T1.F0=T2.F0
group by
  F1,  F2,  F3
having count(/*distinct*/ T1.F0)=(select count(*) from T2)



verter
т.е. для данного примера нужно вывести следующее:

Код: sql
1.
2.
3.
4.
5.
6.
7.
F0  F1  F2  F3
---------------
1   A   22  33
2   A   22  33
3   A   22  33
1   С   26  31
2   С   26  31

так ты получишь группы (F1, F2, F3) которые выводить не надо
А дальше, cross join результата с T2 и except его из T1
...
Рейтинг: 0 / 0
Запрос на выборку из таблицы если чего то нет в другой таблице
    #40107909
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо. Понял.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос на выборку из таблицы если чего то нет в другой таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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