0%

SQL进阶操作(1)

SQL JOIN

用于把两个或者多个表的行结合起来。

类型 描述
INNER JOIN 返回两个表中满足连接条件的记录
LEFT JOIN 返回左表中的所有记录
RIGHT JOIN 返回右表中的所有记录
FULL OUTER JOIN 返回两个表的并集,包含匹配与不匹配记录
CROSS JOIN 返回两个表的笛卡尔积,每条左表记录与每条右表记录组合
SELF JOIN 将一个表与自身连接
NATURAL JOIN 基于同名字段自动匹配连接的表

INNER JOIN 关键字

INNER JOIN返回两个表中满足连接条件的记录。

语法

1
2
3
SELECT column FROM 
table_1 INNER JOIN table_2
ON table_1.column1 = table_2.column2;

备注

  • 返回column列中,满足匹配条件的记录

  • INNER JOIN 与 JOIN 等同

  • table_1.column1 = table_2.column2 通常指定为两个表的共同字段

LEFT JOIN 关键字

LEFT JOIN 返回左表中所有的行,如果右表中没有与之匹配的记录,则返回NULL。

语法

1
2
3
SELECT column FROM
table_1 LEFT JOIN table_2
ON table_1.column1 = table_2.column2;

RIGHT JOIN 关键字

RIGHT JOIN 返回右表中所有的行,如果左表中没有与之匹配的记录,则返回NULL。

语法

1
2
3
SELECT column FROM
table_1 RIGHT JOIN table_2
ON table_1.column1 = table_2.column2;

FULL JOIN 关键字

FULL JOIN 用于保留两个表中的所有记录,即使其中一个表没有匹配项。

语法

1
2
3
SELECT column FROM
table_1 FULL OUTER JOIN table_2
ON table_1.column1 = table_2.column2;
  • column表示需要返回的一个或多个列