在 SQL 中,JOIN 用于将两个或多个表的数据基于指定条件合并起来。常见的 JOIN 类型有以下四种:

  1. INNER JOIN(内连接)
  • 用途:返回两个表中满足条件的共有数据。只有在两个表中都存在匹配记录的行会被返回。
  • 用法
    sql SELECT A.column1, B.column2 FROM TableA A INNER JOIN TableB B ON A.key = B.key;
  • 结果:返回TableATableB中满足A.key = B.key条件的共有数据。
  1. LEFT JOIN(左连接)
  • 用途:返回左表的所有记录,以及在右表中满足条件的匹配记录。如果右表中没有匹配记录,则结果中右表的字段值为 NULL
  • 用法
    sql SELECT A.column1, B.column2 FROM TableA A LEFT JOIN TableB B ON A.key = B.key;
  • 结果:返回左表的所有记录,若在右表中无匹配记录,右表字段为 NULL
  1. RIGHT JOIN(右连接)
  • 用途:返回右表的所有记录,以及在左表中满足条件的匹配记录。如果左表中没有匹配记录,则结果中左表的字段值为 NULL
  • 用法
    sql SELECT A.column1, B.column2 FROM TableA A RIGHT JOIN TableB B ON A.key = B.key;
  • 结果:返回右表的所有记录,若在左表中无匹配记录,左表字段为 NULL
  1. FULL JOIN(全连接)
  • 用途:返回两个表中的所有记录,不论是否存在匹配记录。对于没有匹配的部分,未匹配表的字段值为 NULL
  • 用法
    sql SELECT A.column1, B.column2 FROM TableA A FULL JOIN TableB B ON A.key = B.key;
  • 结果:返回左表和右表的所有记录;没有匹配的行对应的另一表字段值为 NULL

每种连接方式适用场景不同,选择时要根据需求决定是返回完全匹配的数据、左表或右表的所有数据,还是全部数据。