SQL-关键字的解析顺序

sql执行顺序

1
2
3
4
5
6
7
8
9
10
11
sql执行顺序 
(1)from
(3) join
(2) on
(4) where
(5)group by(开始使用select中的别名,后面的语句中都可以使用)
(6) avg,sum....
(7)having
(8) select
(9) distinct
(10) order by

多表连接

深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

内连接

1
2
3
4
5
6
7
8
# 等值连接 
SELECT E1.EMPNO,E1.ENAME,E1.MGR,E2.ENAME AS MGRNAME FROM EMP E1,EMP E2 WHERE E1.MGR=E2.EMPNO;

# 内连接
SELECT E1.EMPNO,E1.ENAME,E1.MGR,E2.ENAME AS MGRNAME FROM EMP E1 JOIN EMP E2 ON E1.MGR=E2.EMPNO;

# 使用using连接等值字段
SELECT EMPNO,ENAME, DNAME FROM EMP JOIN DEPT USING (DEPTNO);

左连接

1
SELECT E1.EMPNO,E1.ENAME,E1.MGR,E2.ENAME AS MGRNAME FROM EMP E1 LEFT JOIN EMP E2 ON E1.MGR=E2.EMPNO;

参考

Oracle SQL语句执行流程与顺序原理详解
关于sql和MySQL的语句执行顺序