запрос к базе данных необходим для следующего qn - PullRequest
0 голосов
/ 24 ноября 2011

у меня есть 3 базы данных поставщик (с.и.д.: целое число, SNAME: строка, Адрес: строка) части: (PID: целое число, PNAME: строка, цвет: строка) Каталог (с.и.д.: номер, PID: номер, стоимость: строка)

qn: найдите имена поставщиков, которые поставляют только зеленые детали

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Не знаю, как вы храните свои цвета (например, определение цвета HTML, название или что), но такой запрос может помочь:

select supplier.name
from supplier
where  supplier.sid in (
-- all the suppliers who supply green parts
select distinct(a.sid)
from catalog a 
inner join parts b on a.pid = b.pid     
where b.color = 'green')

and supplier.sid not in (       

-- all the supplier ids who supply parts that are not green
select distinct(a.sid)
from catalog a 
inner join parts b on a.pid = b.pid     
where b.color <> 'green')

Это возвращает имена поставщиков, которые есть ТОЛЬКО на складезеленые части.

0 голосов
/ 24 ноября 2011

выберите supplier.sid, supplier.sname, supplier.Address из каталога, где part.color = 'green' левый соединитель поставщика в (catalog.sid = supplier.sid) левый соединитель детали в (catalog.pid = parts.pid));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...