如何解决MySQL:我可以使用INNER JOIN查找属于第二个表中定义的类别的表的项吗?
我有两个表 imc_shop 和 imc_shop_category 。 imc_shop_category 反映商店中某个项目所属的类别。
在我的示例中,shop表有两个ID为10和11的商品。 在类别表中,项目10指向类别3、11、16、19和31 其中第11项指向31、3、12、16和19。
如果我搜索属于类别3和12 的项目,则仅返回项目 11 。
我尝试了以下查询,该查询不起作用:
SELECT s.* FROM imc_shop AS s
INNER JOIN imc_shop_category AS c ON s.itemId = c.itemId
WHERE c.categoryId = 3 AND c.categoryId = 12
您知道如何获得正确的结果吗?
解决方法
SELECT s.* FROM imc_shop AS s
INNER JOIN imc_shop_category AS c ON s.itemId = c.itemId
AND (c.categoryId = 3 OR c.categoryId = 12)
GROUP BY s.itemID
HAVING COUNT(DISTINCT c.categoryId) = 2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。