sql中 in的用法
sql中in的用法sql中in是怎么用的。比如说现在有商品的大类c,下面有若干小类c1,c2....每个小类里都有一些产品。现在我要列出大类c里面的所有产品。该怎么写ca...
sql中 in的用法
sql 中 in 是怎么用的。
比如说现在有商品的大类c,下面有若干小类c1,c2.... 每个小类里都有一些产品。现在我要列出大类c里面的所有产品。该怎么写
category 表
cid 分类序号(非自动编号)
pid 父类序号
cname 类名称
product 表
id 产品序号
cid 类别序号(和上面的表一样)
name 产品名称
比如现在有个
大类
cid=10 pid=0 cname=手表系列
小类
cid=11 pid=10 cname=卡西欧系列
cid=12 pid=10 cname=精工系列
... 展开
sql 中 in 是怎么用的。
比如说现在有商品的大类c,下面有若干小类c1,c2.... 每个小类里都有一些产品。现在我要列出大类c里面的所有产品。该怎么写
category 表
cid 分类序号(非自动编号)
pid 父类序号
cname 类名称
product 表
id 产品序号
cid 类别序号(和上面的表一样)
name 产品名称
比如现在有个
大类
cid=10 pid=0 cname=手表系列
小类
cid=11 pid=10 cname=卡西欧系列
cid=12 pid=10 cname=精工系列
... 展开
2个回答
展开全部
你现在的这个要求一般不用in.
假如你说的大类C是指大类的名称是"C", 则用下面的语句:
select c.*
from category a,category b, product c
where a.name='C' and a.pid=0
and b.pid=a.cid
and c.cid=b.cid
首先从category中取出name为'C'且pid为0的数据(得到cid), 表映射到a;
然后以自联,再从category中取得pid为a的cid的数据(也就是大类C中的所有小类,表映射到b;
最后再关联产品表product, 取得cid为b的cid的所有产品,表映射到c.
当然, 如果你所说的C大类, 直接就知道其id号, 就像你给的例子中直接知道了10, 那么"自联"这步就不需要了.
-------------------------------
如果非要用in, 则按下面的方式:
select * from product where cid in (
select b.cid
from category a,category b
where a.name='C' and a.pid=0
and b.pid=a.cid
)
-------------------------------
另外, in 还用在下面这种情况, 比如:
你想取得1,3,8,9这四个小类的所有产品, 则可以用:
select * from product where cid in (1,3,8,9)
假如你说的大类C是指大类的名称是"C", 则用下面的语句:
select c.*
from category a,category b, product c
where a.name='C' and a.pid=0
and b.pid=a.cid
and c.cid=b.cid
首先从category中取出name为'C'且pid为0的数据(得到cid), 表映射到a;
然后以自联,再从category中取得pid为a的cid的数据(也就是大类C中的所有小类,表映射到b;
最后再关联产品表product, 取得cid为b的cid的所有产品,表映射到c.
当然, 如果你所说的C大类, 直接就知道其id号, 就像你给的例子中直接知道了10, 那么"自联"这步就不需要了.
-------------------------------
如果非要用in, 则按下面的方式:
select * from product where cid in (
select b.cid
from category a,category b
where a.name='C' and a.pid=0
and b.pid=a.cid
)
-------------------------------
另外, in 还用在下面这种情况, 比如:
你想取得1,3,8,9这四个小类的所有产品, 则可以用:
select * from product where cid in (1,3,8,9)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询