select * from
(select sum(b) as A from table where a='A') a
where a.A>100
这个查询,如果你想得到结果,数据库一定先计算select sum(b) as A from table where a='A',否则不行
嵌套就是类似IN语句,比如select*
from
table1
where
id
in
(select
id
from
table2),连接就是用JOIN把2表根据一个字段进行数据连接,区别就是连接查询效率比嵌套高,而且JOIN可以通过改变JOIN先后顺序,先扫描记录少的表,从而提高速度,如果嵌套会固定先搜索子查询
1select 产品(名称) from 产品 where 产品(编号) in (select 使用(产品编号) from 使用 where 使用(使用零件编号) in (select 零件(颜色) from 零件 where 零件(颜色)='红色'))
2,
select select 产品(名称) from 产品 where 产品(车间编号) in (select 车间(编号) from 车间 where 车间(人数)<(select (min)车间(人数) from 车间 where 车间(编号) in (3,4,5)))
3
a 产品 b零件 b使用
select a.名称,b.名称,c.个数 from 产品 as a,零件 as b,使用 as c where c.产品编号=a.编号 and c.使用零件编号=a.编号 and a,编号=(select 产品(编号) from 产品 where 产品(车间编号)=(select 车间(编号) from 车间 where 车间(主任)='张力'))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)