如下面的sql 
列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门.select d.dname,e.*
from emp e,dept d
where e.deptno(+) = d.deptno
这其中的(+)表示什么意思呢,为什么要这么写,为什么不写成e.deptno =(+) d.deptno呢。

解决方案 »

  1.   

    那为什么要这么设计啊,为什么不写成e.deptno =(+) d.deptno呢,我觉得他要这么写就有这么写的道理,如果真的没有什么道理的话,我就只有硬纪了,但是每次都记不清楚,都要去查,高手说下
      

  2.   

    使用标准的sql语法,select d.dname,e.*
    from emp e right join dept d
    on e.deptno = d.deptno;这么写就不用查了啊!
      

  3.   

    select d.dname,e.*
    from emp e,dept d
    where e.deptno(+) = d.deptnoemp表中有的deptno ID的数据 而dept 表中却没有
      

  4.   

    1 那个少就写上(+),或者?边要全部显示就写 ?jion
    2 不推荐用(+),这是oracle 的方言,用 ?jion 符合SQL 规范
      

  5.   

    你为什么要写select from 不写choose from ?
    一个道理,都是语法级别的东西。
      

  6.   

    (+)=
    right join
    =(+)
    left join