table A(分类表)
id category_name
1 分类1
2 分类2
3 分类3
4 分类4
5 分类5
6 分类6
table B(关系表)
id category_id product_id
1 2 1
2 3 1
3 4 1
4 2 2
5 4 2
6 5 2
6 6 2
7 1 3
8 3 3
9 4 3
10 6 3
table C (产品表)
id product_name
1 产品1
2 产品2
3 产品3
怎么样根据关系表搜索 有 分类2 并且有 分类4 的产品(或产品id), 如产品1和产品2 ; 只用一条sql语句可以吗?
本人是刚开始学者,谢谢大家帮助;
id category_name
1 分类1
2 分类2
3 分类3
4 分类4
5 分类5
6 分类6
table B(关系表)
id category_id product_id
1 2 1
2 3 1
3 4 1
4 2 2
5 4 2
6 5 2
6 6 2
7 1 3
8 3 3
9 4 3
10 6 3
table C (产品表)
id product_name
1 产品1
2 产品2
3 产品3
怎么样根据关系表搜索 有 分类2 并且有 分类4 的产品(或产品id), 如产品1和产品2 ; 只用一条sql语句可以吗?
本人是刚开始学者,谢谢大家帮助;
解决方案
100
select * from C where exists (select 1 from B ,A where a.id=b.category_id and a.category_name="分类2" and b.product_id=c.id) and exists (select 1 from B ,A where a.id=b.category_id and a.category_name="分类4" and b.product_id=c.id)