你现在的这个要求一般不用in
假如你说的大类C是指大类的名称是"C",
则用下面的语句:
select
c
from
category
a,category
b,
product
c
where
aname='C'
and
apid=0
and
bpid=acid
and
ccid=bcid
首先从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
bcid
from
category
a,category
b
where
aname='C'
and
apid=0
and
bpid=acid
)
-------------------------------
另外,
in
还用在下面这种情况,
比如:
你想取得1,3,8,9这四个小类的所有产品,
则可以用:
select
from
product
where
cid
in
(1,3,8,9)
in是说在什么当中,是用在嵌套里的,具体的应用语句就是
select
from
wherein(select
from
where)
就是说在第二个查询块中查找符合第一个查询块的条件的事物就像筛选那样先查找出一个范围,再在其中进一步找
我举例说明基本用法吧,lz如果已经有了基础而是要知道更多更深入的知识的话,不需要在知道提问,直接百度里搜索,资料大把大把的,而且不难懂。
表(stu)结构和数据如下:
id name age height
1 abby 14 134
2 amelia 13 128
3 ken 14 144
1、in
select t from stu t where age in (14, 15);
查询结果是1和3,没有age为15的。
2、or
select t from stu t where age = 13 or age = 14;
得到所有的3条,这是“或”,年龄为13岁或14岁
3、and
select t from stu t where age = 13 and name = 'ken';
没有结果,这是“与”的关系,检索年龄13岁,名字是ken的学生,没有符合条件的。
以上就是关于sql中 in的用法全部的内容,包括:sql中 in的用法、在数据库中in与多张表的SQL语句怎么写、数据库 IN,OR,AND用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)