我有两个 SQL 表,“产品”和“标签”。它们具有 n:m 关系,使用第三个表“product_tags”。
我想使用查询来查找具有多个特定标签的每个产品。例如,查找与标签 1、23 和 54 相关的所有产品。
有没有办法只用一个查询来做到这一点?
您可以使用此解决方案。这将获取包含以下内容的所有产品ALL关键字 1、23 和 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
Where 3
是您的物品数量WHERE IN
列表,以便您可以根据要检查的标签数量进行相应调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)