J'utilise MySQL. Voici mon schéma:
Fournisseurs ( sid: entier , sname: chaîne, chaîne d'adresse)
Parts ( pid: integer , pname: string, color: string)
Catalogue ( sid: entier, pid: entier , coût: réel)
(les clés primaires sont en gras)
J'essaie d'écrire une requête pour sélectionner toutes les pièces fabriquées par au moins deux fournisseurs:
-- 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
);
Tout d'abord, est-ce que j'agis de la bonne manière?
Deuxièmement, j'obtiens cette erreur:
1111 - Utilisation incorrecte de la fonction de groupe
Qu'est-ce que je fais mal?