У меня есть следующая схема:запросы за три таблицы
|partner|
---------
id
|contract|
----------
id
partner_id
termination_date
|comtract_items|
---------------
id
contract_id
product_id
Я хочу, чтобы выбрать все партнер, которые имеют действующий контракт (termination_date is NULL
) и без каких-либо контрактов с product_id
«s 392 и 393.
Вот мой запрос до сих пор:
SELECT
c.id,
c.subject
FROM
contract_contract c
WHERE
c.termination_date is NULL or c.termination_date > '2014-12-11'
and c.id NOT IN (SELECT contract_id
FROM contract_item
WHERE product_id IN (392, 393))
Любые идеи, как построить запрос?
Ваш запрос выглядит разумным. В чем проблема? –
У вас есть 'contract_contract.subject' в вашем запросе, но не в вашем макете таблицы. Просьба уточнить. Кроме того, ограничение «без контрактов с 392 и 393» product_id должно исключать партнера только того контракта, к которому он применим. –
его следующее отношение> у одного партнера может быть много контрактов, а один контракт может иметь много строк. с моим запросом я хочу получить всех партнеров, которые havnt один из этих продуктов в любом контракте – ghovat