首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这个SQL语句如何实现

2012-01-28 
这个SQL语句怎么实现?有一个产品表(产品ID,产品名称),一个分类表(分类ID,分类名称)和一个产品分类表(产品I

这个SQL语句怎么实现?
有一个产品表(产品ID,产品名称),一个分类表(分类ID,分类名称)和一个产品分类表(产品ID,分类ID),想查询既属于分类1,又属于分类2和分类3的所有产品,如何写SQL语句.

[解决办法]
--如果已知分类1、分类2 是分类名称
select * from 产品表 where 产品ID in
(select 产品ID
from 产品分类表 a inner join 分类表 b on a.分类ID = b.分类ID
where b.分类名称 = '分类1 ' or b.分类名称 = '分类2 ' or b.分类名称 = '分类3 '
group by 产品ID having count(1) = 3
)

--如果已知分类1、分类2 是分类ID
select * from 产品表 where 产品ID in
(select 产品ID
from 产品分类表 b
where b.分类id = '分类1 ' or b.分类ID = '分类2 ' or b.分类ID = '分类3 '
group by 产品ID having count(1) = 3
)

热点排行