ฉันใช้ MySQL นี่คือสคีมาของฉัน:
ซัพพลายเออร์ ( sid: integer , sname: string, address string)
ส่วนต่างๆ ( pid: integer , pname: string, color: string)
แค็ตตาล็อก ( sid: integer, pid: integer , cost: real)
(คีย์หลักเป็นตัวหนา)
ฉันพยายามเขียนแบบสอบถามเพื่อเลือกชิ้นส่วนทั้งหมดที่สร้างโดยซัพพลายเออร์อย่างน้อยสองราย:
-- 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 - การใช้ฟังก์ชันกลุ่มไม่ถูกต้อง
ผมทำอะไรผิดหรือเปล่า?