3、fromsclasswheresno='9501101'andcno='101') 当子查询跟随在=、!=、<、<=、>、>=之后,子查询的返回值只能是一个,否则应在外层where子句中用一个in限定符,即要返回多个值,要用in或者notin2。带[not]in的嵌套查询 只要主查询中列或运算式是在(不在)子查询所得结果列表中的话,则主查询的结果为我们要的数据 select sales_id,tot_amt from sales where sale _id in(select sale_id from employee whe
4、re sex='F')wheresnonotin(Selectdistinctsnofromsclass)3。带exists的嵌套查询 子查询的结果至少存在一条数据时,则主查询的结果为我们要的数据。(exists)或自查询的结果找不到数据时,则主查询的结果为我们要的数据(not exists) 我们经常查询的两个表有多少重复的记录就用这个 以下范例让你找出滞销的产品,也就是尚未有任何销售记录的库存产品。此范例主要是查询以库文件中的每一条产品代码到销售明细表中去查询,如果查询不到任何一条,表示该产品未曾卖出任何一件。 select * from stock a
5、 where not exists(select * from sale_item b where a.prod_id=b.prod_id and a.stup_id=b.stup_id) 4.select ... where 列或运算式 比较运算运算【any
6、all](子查询) 只要主查询中列或运算式与子查询所得结果中任一(any)或全部(all)数据符合比较条件的话则主查询的结果为我们要的数据 select sale_id,tot_amt from sales where tot_am
7、t>any(select tot_amt from sales where sale_id='e0013'and 'order_date='1996/11/10') 选出不同的人金额最高的订单 select * from sales a where tomat=(select max(totmat) from sales where name=a.name) 3:相关子查询(多值子查询)1>非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。2>相关子查询的执行依赖于外部查询的数据,外部查询执