Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > обратный запрос к INNER JOIN


Автор: pabliko 25.3.2010, 21:36
В таблице Sotrydniki три поля (id, Imya, Otdel_ID).
В поле Imya могут храниться пустые строки. Таблица Sotrydniki  связана с таблицей
Otdel (ID,Imya) по полю Otdel_ID.
Нужно - вывести названия всех отделов(Otdel),в которых нет
сотрудников. 
 smile 

Автор: Akina 25.3.2010, 21:58
Цитата(pabliko @  25.3.2010,  22:36 Найти цитируемый пост)
В поле Imya могут храниться пустые строки.

Это "", null или и то, и другое?

Цитата(pabliko @  25.3.2010,  22:36 Найти цитируемый пост)
обратный запрос к INNER JOIN

Это table Left Join table Where field Is Null

Автор: pabliko 25.3.2010, 22:02
пустое null думается мне) 

Sotrydniki Left Join Otdel Where Imya Is Null   ? так будет работать 

Автор: Deniz 30.3.2010, 06:06
Цитата(pabliko @  26.3.2010,  00:02 Найти цитируемый пост)
Sotrydniki Left Join Otdel Where Imya Is Null   ? так будет работать 
нет
Проверка без учета "пустых" записей.
Код
select * 
from Otdel o
  left join Sotrydniki s on s.Otdel_ID = o.ID
where o.ID is null

Цитата(pabliko @  25.3.2010,  23:36 Найти цитируемый пост)
В поле Imya могут храниться пустые строки. 
т.е. если запись есть, но имя пусто, то рассматривать как нет работника?
Код
select * 
from Otdel o
  left join Sotrydniki s on s.Otdel_ID = o.ID
where (o.ID is null) or (coalesce(s.Imya, '') = '')
Так?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)