SQL JOIN 子句用于将两个或者多个表联合起来进行查询
语法:
SELECT table1.column1, table2.column2...
FROM table1
(INNER/LEFT/RIGHT/FULL OUTER) JOIN table2
ON table1.common_column1 = table2.common_column2;
table1.common_column1 = table2.common_column2 是连接条件,只有满足此条件的记录才会合并为一行。可以使用多个运算符来连接表,例如 =、>、<、<>、<=、>=、!=、BETWEEN、LIKE 或者 NOT,但是最常见的是使用 =
INNER JOIN
INNER JOIN 是 SQL 中最重要、最常用的表连接形式,只有当连接的两个或者多个表中都存在满足条件的记录时才返回行。
示例:
LEFT JOIN
LEFT JOIN 以左表为主,即左表中的所有记录都会被返回,具体分为以下三种情况:
- 如果 table1 中的某条记录在 table2 中刚好只有一条记录可以匹配,那么在返回的结果中会生成一个新的行。
- 如果 table1 中的某条记录在 table2 中有 N 条记录可以匹配,那么在返回结果中也会生成 N 个新的行,这些行所包含的 table1 的字段值是重复的。
- 如果 table1 中的某条记录在 table2 中没有匹配的记录,那么在返回结果中仍然会生成一个新的行,只是该行所包含的 table2 的字段值都是 NULL
示例:
RIGHT JOIN
RIGHT JOIN 和 LEFT JOIN 是相对的,RIGHT JOIN 将返回右表(table2)中的所有记录,即使左表(table1)中没有匹配的记录也是如此。当左表中没有匹配的记录时,RIGHT JOIN 仍然返回一行,只是该行的右表字段有值,而左表字段以 NULL 填充。
示例:
FULL OUTER JOIN
FULL JOIN 将返回左表(table1)和右表(table1)中的所有记录
示例:
---写在文末---
数据分析社区推荐,免费数据分析资料下载。定期分享数据分析领域的最新动态、实战案例、技术工具评测、数据可视化技巧以及行业洞察报告。