forum.bitel.ru
http://forum.bitel.ru/

Вопрос по sql
http://forum.bitel.ru/viewtopic.php?f=22&t=3978
Страница 1 из 1

Автор:  rix [ 04 май 2010, 11:25 ]
Заголовок сообщения:  Вопрос по sql

Как получить договоры, у которых не задан определенный параметр?

Автор:  dimOn [ 04 май 2010, 11:33 ]
Заголовок сообщения:  Re: Вопрос по sql

Составить запрос, выполнить, проанализировать результат.

Автор:  rix [ 04 май 2010, 11:39 ]
Заголовок сообщения:  Re: Вопрос по sql

В том и вопрос, как такой запрос составить - SELECT cid FROM contract_parameter_type_1 WHERE pid=10 and val IS NULL работать не будет

Автор:  Cromeshnic [ 04 май 2010, 11:49 ]
Заголовок сообщения:  Re: Вопрос по sql

SELECT c.id FROM contract c left join contract_parameter_type_1 cp on c.id=cp.cid and cp.pid=10 where cp.val IS NULL;

Автор:  dimOn [ 04 май 2010, 11:54 ]
Заголовок сообщения:  Re: Вопрос по sql

rix писал(а):
В том и вопрос, как такой запрос составить - SELECT cid FROM contract_parameter_type_1 WHERE pid=10 and val IS NULL работать не будет
Конечно не будет, прежде чем проверить значение присоединяемой таблицы на null надо её куда-нибудь присоединить.
Типа того
Код:
select contract.id from contract
left join contract_parameter_type_1 on contract_parameter_type_1.cid=contract.id and contract_parameter_type_1.pid=10
where contract_parameter_type_1.val IS NULL

Автор:  SafeAndSound [ 04 май 2010, 16:43 ]
Заголовок сообщения:  Re: Вопрос по sql

А можно и так
Код:
SELECT id from contract c
WHERE NOT EXISTS (SELECT null FROM contract_parameter_type_1 cp1 WHERE pid=10 and cp1.cid=c.id)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/