今天下午看了整天书,看到子查询就蒙了!
请问
1.什么是子查询?
2.子查询有什么用?
3.怎么用子查询?
4.举一些使用子查询的例子?
谢谢...

解决方案 »

  1.   

    select * from 表A
    where id in (select id from 表B)[/
      

  2.   

    1、单行子查询 
    select ename,deptno,sal   
    from emp   
    where deptno=(select deptno from dept where loc='NEW YORK')
    2、多行子查询 
    SELECT ename,job,sal   
    FROM EMP   
    WHERE deptno in ( SELECT deptno FROM dept WHERE dname LIKE 'A%')
    3、多列子查询       
    SELECT deptno,ename,job,sal
    FROM EMP
    WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno)
    4、内联视图子查询 
    (1)SELECT ename,job,sal,rownum   
       FROM (SELECT ename,job,sal FROM EMP ORDER BY sal);   
    (2)SELECT ename,job,sal,rownum   
       FROM ( SELECT ename,job,sal FROM EMP ORDER BY sal)   
       WHERE rownum<=5  
    5、在HAVING子句中使用子查询 SELECT deptno,job,AVG(sal) FROM EMP GROUP BY deptno,job HAVING AVG(sal)>(SELECT sal FROM EMP WHERE ename='MARTIN')
      

  3.   

    子查询基础知识
    http://msdn.microsoft.com/zh-cn/library/ms189575.aspx子查询是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。在此示例中,子查询用作 SELECT 语句中名为 MaxUnitPrice 的列表达式。有三种基本的子查询。它们是: 1、在通过 IN 或由 ANY 或 ALL 修改的比较运算符引入的列表上操作。2、通过未修改的比较运算符引入且必须返回单个值。3、通过 EXISTS 引入的存在测试。
      

  4.   

    select a,(select from 表B)
    from 表Aselect a
    from 表A a
    where a.id in (select ...........)两种方式