用SQL进行嵌套查询在SELECT查询语句里可以嵌入SELECT查询语句,称为嵌套查询
也可将内嵌的SELECT语句称为孒查询,子查询形成的结果又成为父查询的条件
子查询可以嵌套多层,子查询操作的数据表可以是父查询不操作的数据表
子查询中不能有GroupBY分组语句1
简单嵌套查询语句范例:select单价表
客户,单价表
产品名,单价表
单价;from单价表;where单价表
产品名=(select产品表
产品名;from产品表;where产品表
产品ID="102-5000")说明:查询得到单价表里满足产品名为产品表里产品ID为“102-5000”的产品的相关信息2
带【in】的嵌套查询语句范例:select雇员表
雇员编号,雇员表
姓名,雇员表
职位,雇员表
薪水;from雇员表;where薪水in(select薪水from雇员表where姓名='张三')说明:查询得到雇员表里满足薪水符合姓名为张三的薪水的所有雇员的相关信息,比如in(1000,1500,2000)表示薪水=1000或1500或2000的情况
注:此语句完成的查询薪水和张三相等的职员,也可以使用【notin】来进行相反的查询3
带【any】的嵌套查询语句范例:select雇员表
雇员编号,雇员表
姓名,雇员表
职务,雇员表
薪水;from雇员表;where薪水>any(select薪水from雇员表where职务=‘工程师’)说明:查询得到薪水比职务为工程师的薪水都要高的职员信息
例如子查询结果为(2000,1500,1000),父查询的条件为"薪水>2000or薪水>1500or薪水>1000"4
带【some】的嵌套查询语句范例:select雇员表
雇员编号,雇员表
姓名,雇员表
职务,雇员表
薪水;from雇员表;where薪水=some(select薪水from雇员表where职务=‘工程师’