SELECT * FROM EMP E LEFT JOIN DEPT D ON E.EPTNO = D.DEPTNO LEFT JOIN DDFT T ON E.EPTNO = T.DEPTNO AND NVL(D.ENAME,T.ENAME) ;这个sql是什么意思
时间: 2024-05-08 10:21:11 浏览: 125
这个 SQL 查询语句使用了两个 LEFT JOIN,查询了三张表 EMP、DEPT 和 DDFT。它的作用是将 EMP 表中的员工信息和 DEPT 表中的部门信息以及 DDFT 表中的信息连接起来,并把它们的所有列都查询出来。
具体来说,它的语法如下:
```
SELECT *
FROM EMP E
LEFT JOIN DEPT D ON E.EPTNO = D.DEPTNO
LEFT JOIN DDFT T ON E.EPTNO = T.DEPTNO AND NVL(D.ENAME,T.ENAME) ;
```
其中:
- `SELECT *` 表示查询所有列。
- `FROM EMP E` 表示从 EMP 表中查询,E 是 EMP 表的别名。
- `LEFT JOIN DEPT D ON E.EPTNO = D.DEPTNO` 表示将 EMP 表和 DEPT 表连接起来,连接条件是 EMP 表的 EPTNO 列和 DEPT 表的 DEPTNO 列相等。LEFT JOIN 表示保留 EMP 表中的所有记录,即使在 DEPT 表中没有匹配的记录。
- `LEFT JOIN DDFT T ON E.EPTNO = T.DEPTNO AND NVL(D.ENAME,T.ENAME)` 表示将 EMP 表和 DDFT 表连接起来,连接条件是 EMP 表的 EPTNO 列和 DDFT 表的 DEPTNO 列相等,并且 DEPT 表的 ENAME 列和 DDFT 表的 ENAME 列相等(如果 DEPT 表中没有 ENAME 列,则使用 DDFT 表中的 ENAME 列)。LEFT JOIN 表示保留 EMP 表中的所有记录,即使在 DDFT 表中没有匹配的记录。
阅读全文