Nếu bạn đang muốn chọn dựa trên danh sách Dưới dạng (không phải TẤT CẢ Như), hãy làm như sau:
SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2
Thay thế (1,2)
với danh sách của bạn và 2
trong mệnh đề có số lượng mục trong danh sách.
Nếu bạn nhận được danh sách As từ một truy vấn con, bạn có thể làm như vậy (tuy nhiên, không phải trong MySQL ...):
WITH subquery (
--subquery code here
)
SELECT b_id
FROM ab
WHERE a_id IN subquery
GROUP BY b_id
HAVING COUNT(a_id) = (SELECT COUNT(*) FROM subquery)
Trong MySQL, bạn sẽ phải đặt mã truy vấn con của mình hai lần và bỏ mệnh đề WITH.
Bạn cũng có thể sử dụng một bảng tạm thời, sau đó sẽ dẫn đến việc chọn TẤT CẢ Như từ bảng tạm thời đó và do đó Gordon Linoffs trả lời ...