本文介绍了MySQL数据透视连接失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有下表
标签
id | tag_name | slug |
1 | tag1 |tag1
2 | tag1 |tag1
产品
id | proudct_name
1|product1
2|product2
product_tags
id | product_id | tag_id
1|1||1
2|1|2
3|2|1
我只需要检索属于tag1和tag2的那些产品
i need retrieve only those product which belongs to both tag1 and tag2
select * from `products` INNER JOIN product_tags ON products.id=product_tags.product_id
INNER JOIN tags ON tags.id=product_tags.tag_id WHERE product_tags.tag_id=1 AND product_tags.tag_id=2
但是我的查询返回空结果
But my query return empty result
推荐答案
这将查找两个表中的产品:
This will look the product that in both tables:
select * from `products` a where exists(select 1 from product_tags b where b.tag_id = 1 and a.product_id = b.product_id) and exists(select 1 from product_tags b where b.tag_id = 2 and a.product_id = b.product_id)
这篇关于MySQL数据透视连接失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!