Bạn cần sử dụng HAVING
, không phải WHERE
.
Sự khác biệt là:WHERE
mệnh đề lọc các hàng mà MySQL chọn. Sau đó MySQL nhóm các hàng lại với nhau và tổng hợp các số cho COUNT
của bạn chức năng.
HAVING
giống như WHERE
, chỉ nó xảy ra sau COUNT
giá trị đã được tính toán, vì vậy nó sẽ hoạt động như bạn mong đợi. Viết lại truy vấn con của bạn thành:
( -- where that pid is in the set:
SELECT c2.pid -- of pids
FROM Catalog AS c2 -- from catalog
WHERE c2.pid = c1.pid
HAVING COUNT(c2.sid) >= 2)