Я використовую MySQL. Ось моя схема:
Постачальники ( sid: ціле число , назва: рядок, адресний рядок)
Частини ( pid: ціле число , ім'я: рядок, колір: рядок)
Каталог ( sid: ціле число, pid: ціле число , вартість: реальне)
(первинні клавіші виділені жирним шрифтом)
Я намагаюся написати запит, щоб вибрати всі частини, які виготовлені щонайменше двома постачальниками:
-- Find the pids of parts supplied by at least two different suppliers.
SELECT c1.pid -- select the pid
FROM Catalog AS c1 -- from the Catalog table
WHERE c1.pid IN ( -- where that pid is in the set:
SELECT c2.pid -- of pids
FROM Catalog AS c2 -- from catalog
WHERE c2.pid = c1.pid AND COUNT(c2.sid) >= 2 -- where there are at least two corresponding sids
);
По-перше, я навіть іду про це правильним шляхом?
По-друге, я отримую цю помилку:
1111 - Недійсне використання групової функції
Що я роблю неправильно?