Điều sau sẽ hoạt động.
SELECT media_id
FROM tagXmedia
WHERE tag_id IN (SELECT id FROM tag WHERE name IN ('home','hawaii'))
GROUP BY media_id
HAVING COUNT(tag_id) = 2;
Nếu bạn muốn nó khớp với nhiều hơn chỉ hai thẻ, bạn có thể dễ dàng thêm chúng. Chỉ cần nhớ thay đổi 2 trong HAVING
mệnh đề.
Tôi đã giả định tất cả các hàng trong tagXmedia
là duy nhất. Trong trường hợp không có, bạn sẽ phải thêm DISTINCT
đến COUNT
một phần.