Đ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.