在 SQL 中,JOIN
用于将两个或多个表的数据基于指定条件合并起来。常见的 JOIN
类型有以下四种:
- INNER JOIN(内连接)
- 用途:返回两个表中满足条件的共有数据。只有在两个表中都存在匹配记录的行会被返回。
- 用法:
sql SELECT A.column1, B.column2 FROM TableA A INNER JOIN TableB B ON A.key = B.key;
- 结果:返回
TableA
和TableB
中满足A.key = B.key
条件的共有数据。
- LEFT JOIN(左连接)
- 用途:返回左表的所有记录,以及在右表中满足条件的匹配记录。如果右表中没有匹配记录,则结果中右表的字段值为
NULL
。 - 用法:
sql SELECT A.column1, B.column2 FROM TableA A LEFT JOIN TableB B ON A.key = B.key;
- 结果:返回左表的所有记录,若在右表中无匹配记录,右表字段为
NULL
。
- RIGHT JOIN(右连接)
- 用途:返回右表的所有记录,以及在左表中满足条件的匹配记录。如果左表中没有匹配记录,则结果中左表的字段值为
NULL
。 - 用法:
sql SELECT A.column1, B.column2 FROM TableA A RIGHT JOIN TableB B ON A.key = B.key;
- 结果:返回右表的所有记录,若在左表中无匹配记录,左表字段为
NULL
。
- FULL JOIN(全连接)
- 用途:返回两个表中的所有记录,不论是否存在匹配记录。对于没有匹配的部分,未匹配表的字段值为
NULL
。 - 用法:
sql SELECT A.column1, B.column2 FROM TableA A FULL JOIN TableB B ON A.key = B.key;
- 结果:返回左表和右表的所有记录;没有匹配的行对应的另一表字段值为
NULL
。
每种连接方式适用场景不同,选择时要根据需求决定是返回完全匹配的数据、左表或右表的所有数据,还是全部数据。