Bạn có thể sử dụng giải pháp này. Điều này nhận được tất cả các sản phẩm có chứa TẤT CẢ từ khóa 1, 23 và 54:
SELECT a.*
FROM products a
INNER JOIN product_tags b ON a.product_id = b.product_id
WHERE b.tag_id IN (1,23,54)
GROUP BY a.product_id
HAVING COUNT(1) = 3
Ở đâu 3
là số mục trong WHERE IN
của bạn danh sách, vì vậy bạn có thể điều chỉnh cho phù hợp dựa trên số lượng thẻ bạn muốn kiểm tra.