内连接(INNER JOIN)

SELECT *(想要展现出来的列)
FROM table01 t1(t1代表简写)
(INNER可写可省略)JOIN table02 t2
ON t1.column_n = t2.column_m

跨数据库链接

在JOIN的数据表前面加上数据库名称和一个dot
JOIN sql_a.table_n

自连接

FROM table_a a
JOIN table_a a
ON a.employee = a,manger

多表连接

同自连接

复合连接条件

JOIN
ON 条件一 AND 条件二

隐式连接

FROM table_a a
JOIN table_b b
ON a.column_n = b.column_m
等价于
FROM a,b
WHERE a.column_n = b.column_m(隐式连接)
注意不能忘记WHERE条件,不然会数据爆炸,即笛卡尔积

外连接

当遇到连接两个表的时候,若某个列表中存在NULL,会导致合并后的表格后部分数据不显示。
为解决该问题,使用外连接,即加入关键词LEFT,RIGHT
FROM table_a
**LEFT(或RIGHT)**JOIN table_b
ON statement
最总显示的结果以(RIGHT或LEFT)代表的一边为主
为代码显示美观简洁,将显示结果一边作为LEFT

USING子句

FROM a
JOIN b
on a.column_n = b.column_n
等价于
FROM
JOIN
**USING **(column_n)
注意两张表必须有相同的列名称

自然连接

FROM a
**NATURE JOIN** b
显示什么结果全看引擎,很危险,我们操控不了结果

交叉连接ACROSS JOIN

即笛卡尔积,n行表a与m行表b交叉连接,生成n*m的表

联合Unoin

连接列数相同的表进行上下连接
FROM
SELECT
WHERE
**UNOIN**
FROM
SELECT
WHERE
……