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

Откуда:
Сообщений: 22
Всем категорическое здравствуйте! 2 года не занимался SQL, а тут попался на глаза простенький запрос и я завис... Можно плюнуть и забыть, но как же с этим жить дальше?! 0_о )))
В общем задача такая. Есть таблица region с первичным ключом RegionID. В таблице 5 записей.
Вот сам запрос:
автор
select a.RegionID
from region a
left join region b on a.RegionID = b.RegionID and a.RegionID is null


А вот на этом условии я и подвис - a.RegionID is null
Почему запрос выдаёт 5 записей? Разве дополнительное условие не требует выбрать только записи в таблице а со значением null?
17 ноя 16, 12:11    [19902950]     Ответить | Цитировать Сообщить модератору
 Re: Дополнительные условия в Join  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Andrey_KI,

запрос конечно огонь, но ответ left join
17 ноя 16, 12:12    [19902957]     Ответить | Цитировать Сообщить модератору
 Re: Дополнительные условия в Join  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Andrey_KI
Всем категорическое здравствуйте! 2 года не занимался SQL, а тут попался на глаза простенький запрос и я завис... Можно плюнуть и забыть, но как же с этим жить дальше?! 0_о )))
В общем задача такая. Есть таблица region с первичным ключом RegionID. В таблице 5 записей.
Вот сам запрос:
автор
select a.RegionID
from region a
left join region b on a.RegionID = b.RegionID and a.RegionID is null


А вот на этом условии я и подвис - a.RegionID is null
Почему запрос выдаёт 5 записей? Разве дополнительное условие не требует выбрать только записи в таблице а со значением null?
Это условие влияет лишь на результат, возвращаемый из правой таблицы LEFT JOINа.
Поскольку условие не выполняется, то выдаются все записи из левой таблицы (ибо LEFT JOIN),
а все поля из правой устанавливаются в NULL
17 ноя 16, 12:38    [19903111]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить