Задача по sql, как найти поставщиков и детали?
Подскажите, как решить данную задачу? что-то не получается
http://sqlfiddle.com/#!9/e5ef32/4
Есть 4 таблицы:
поставщиков, деталей, проектов и поставки(поставщик,деталь,проект,количество)
Найти все пары "номер поставщика—номер детали", причем только такие, в которых данный поставщик не поставляет данную деталь.
P.S.
таблицы:
поставщиков(s), деталей(p), проектов(j) и поставки(spj)
Ответы (1 шт):
Для решения данной задачи необходимо воспольховаться оператором EXISTS, который принимает значение TRUE, если подзапрос содержит любое количество строк, иначе его значение равно FALSE. Для NOT EXISTS все наоборот.
select
*
from s, p
where not exists
(select
null
from spj
where spj.s = s.s
and spj.p = p.p)
Внутри подзапроса EXISTS можно не выбирать никаких столбцов. В Oracle, например, это позволяет сократить время выполнения запроса.