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

Откуда: Кемерово
Сообщений: 13
Здравствуйте!

Подскажите пожалуйста как можно сделать выборку. Например есть две таблицы:
I(ID, Name), Z(ID, I_id) где I.ID=Z.I_id
Нужно получить таблицу с полями Z.ID и I.Name, причем если Z.I_id IS NULL должно выводиться пустое поле. Понятно как сделать выборку, но как поставить условие с пустыми полями не доходит
20 фев 14, 09:23    [15595493]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Nicoman
Понятно как сделать выборку, но как поставить условие с пустыми полями не доходит
А покажите, как вы делаете.
20 фев 14, 09:31    [15595534]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
Nicoman,

"пустое поле" - это что такое? NULL - это ещё не пустое, да?
20 фев 14, 09:31    [15595535]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
Nicoman
Member

Откуда: Кемерово
Сообщений: 13
Чувствуется подвох, но напишу
SELECT Z.ID, I.Name FROM I,Z WHERE I.ID=Z.I_id
20 фев 14, 09:34    [15595554]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
Nicoman
Member

Откуда: Кемерово
Сообщений: 13
Т.е должно получиться :
1 пустое поле
2 I.Name
3 пустое поле
20 фев 14, 09:36    [15595567]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
Nicoman
Чувствуется подвох, но напишу
SELECT Z.ID, I.Name FROM I,Z WHERE I.ID=Z.I_id
Завязывайте с запятыми во FROMе!
SELECT Z.ID, I.Name FROM I LEFT JOIN Z ON I.ID=Z.I_id
20 фев 14, 09:37    [15595569]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
Nicoman
Member

Откуда: Кемерово
Сообщений: 13
Спасибо большое! Извиняюсь за свою безграмотность!
20 фев 14, 10:37    [15595898]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
Nicoman
Member

Откуда: Кемерово
Сообщений: 13
iap, Кстати вместо LEFT JOIN здесь RIGHT JOIN подходит
20 фев 14, 10:39    [15595924]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
Nicoman
причем если Z.I_id IS NULL должно выводиться пустое поле
А как же
Nicoman
если Z.I_id IS NULL должно выводиться пустое поле
?
Значит, I LEFT JOIN Z должно быть
20 фев 14, 10:43    [15595957]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
iap
Nicoman
причем если Z.I_id IS NULL должно выводиться пустое поле
А как же
Nicoman
если Z.I_id IS NULL должно выводиться пустое поле
?
Значит, I LEFT JOIN Z должно быть
Или Z RIGHT JOIN I, что одно и тоже.
Поэтому я всегда преобразую в LEFT JOIN, а RIGHT JOIN никогда не использую.
Для единообразия.
20 фев 14, 10:45    [15595969]     Ответить | Цитировать Сообщить модератору
 Re: Выборка с условием  [new]
Nicoman
Member

Откуда: Кемерово
Сообщений: 13
iap, Согласен! Еще раз спасибо
20 фев 14, 11:23    [15596269]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить