Oracle学习_3 sql子查询,自连接,单行select总结

单条Select语句要点总结:

 

子查询:即是在一个查询语句嵌套另一个查询语句。

      例:查询emp表中工资最高的人的姓名

 

这个查询将报错,因为max(sal)只有一个输出而相对应的ename可能有多个,所以这个查询应该这样写:

 

例:查询各个部门薪水最高的人的姓名,薪水,部门号

 

这种写法是错误的,因为单行子查询中返回多个行,所以可能会做出如下修改:

 

这个查询语句没问题,但是它的查询结果是有问题的,原因很简单,它会将每个部门薪水是子查询的3个值的人都选出来,这与我们的要求不相符。正确写法:

 

理解子查询的关键可以将子查询看做一张表,然后做连接查询就好

自连接

    只需要为同一张表起一个别名就可以了,即是将一张表当成两张表来用

    例如:查询每一个员工的经理人

 

注:文中所用表为oracle的示例数据库

 

 

 

posted on 2011-02-23 09:29  springside5  阅读(126)  评论(0编辑  收藏  举报