大家都知道oracle中自带了四张表,对于我们这种刚接触oracle的学生来说,简直头痛,今天老师说叫我们查询scott下面emp表中ename,job,mgr(是名字哟,不是编号),和dept表中得dname字段,这个相当于是三表联查,不过我不知道怎么在同一表中使用多变联查;所以大家可不可以解决一下。解释一下,emp表中的empno和mgr是有关系的,

解决方案 »

  1.   

    select em.ename as empname, em.job, mgr.ename as mgrname, dep.dname 
    from scott.emp em, scott.emp mgr, scott.dept dep
    where em.mgr = mgr.empno and em.deptno = dep.deptno
      

  2.   

    简单啊,这个叫自连接,即连接的2个表或多个表是同一个表。SELECT EMP1.Ename AS "员工姓名", EMP1.Job AS "员工职位", EMP2.Ename AS "领导姓名", DName
    FROM EMP EMP1 JOIN EMP EMP2 ON EMP1.MGR = EMP2.EMPNO
    JOIN DEPT ON EMP1.DEPTNO = DEPT.DEPTNO;