【问题标题】:Select departments with or without employees. Also select employees if assigned选择有或没有员工的部门。如果已分配,还要选择员工
【发布时间】:2017-05-06 08:22:11
【问题描述】:

我想从分配或未分配员工的所有部门中选择 DNAME、DEPTNO。如果一个部门确实有任何员工,我想获得他们的 ENAME,EMPNO。

我试过这个:select e.empno,e.name,d.deptno,d.dname from emp e full join dept d 关于 e.deptno=d.deptno

但是没有用。

表结构:

DEPT
DEPTNO   DNAME

EMP 
EMPNO ENAME DEPTNO

【问题讨论】:

  • 提示:LEFT JOIN.

标签: sql database select


【解决方案1】:

使用OUTER JOIN(LEFT/RIGHT)

SELECT D.DEPTNO,
       D.DNAME,
       E.EMPNO,
       E.ENAME
FROM   DEPT D
       LEFT OUTER JOIN EMP E
                    ON D.DEPTNO = E.DEPTNO 

Department 没有任何员工时,NULL 将显示在E.EMPNOE.ENAME 列中

【讨论】:

    【解决方案2】:
    SELECT
    DEPT.DEPTNO,DEPT.DNAME,EMP.EMPNO,EMP.NAME
    FROM
    DEPT LEFT OUTER JOIN
    EMP ON DEPT.DEPTNO = EMP.DEPTNO
    

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 1970-01-01
      • 2021-09-09
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多