我在我的数据库中有两个表:
Products
- id(int,主键)
- name(varchar)
ProductTags
- product_id(int)
- tag_id(int)
我想选择所有包含给定标签的产品。我试过了:
SELECT
*
FROM
Products
JOIN ProductTags ON Products.id = ProductTags.product_id
WHERE
ProductTags.tag_id IN (1, 2, 3)
GROUP BY
Products.id
但它给我返回了拥有任何一个给定标签的产品,而不是同时拥有所有给定标签的产品。写 WHERE tag_id = 1 AND tag_id = 2
是无意义的,因为不会返回任何行。