SQL JOIN 子句:合并多个表中相关行的完整指南


SQL中的JOIN子句用于将多个表中的相关行合并为一个结果集。JOIN子句允许通过在两个或多个表之间的共同列上匹配行来联接这些表。以下是JOIN子句的完整指南:

  1. 内连接(INNER JOIN)

    • 内连接返回两个表中共有的行,即它仅返回满足连接条件的行。
    • 语法:
    SELECT columns
    FROM table1
    INNER JOIN table2 ON table1.column = table2.column;
    
  2. 左连接(LEFT JOIN)

    • 左连接返回左表中的所有行,以及右表中与左表中的行匹配的行。如果右表中没有与左表中的行匹配的行,则返回NULL值。
    • 语法:
    SELECT columns
    FROM table1
    LEFT JOIN table2 ON table1.column = table2.column;
    
  3. 右连接(RIGHT JOIN)

    • 右连接与左连接类似,但是返回右表中的所有行,并且返回左表中与右表中的行匹配的行。如果左表中没有与右表中的行匹配的行,则返回NULL值。
    • 语法:
    SELECT columns
    FROM table1
    RIGHT JOIN table2 ON table1.column = table2.column;
    
  4. 全外连接(FULL OUTER JOIN)

    • 全外连接返回左表和右表中的所有行,如果左表和右表中有匹配的行,则返回匹配的行;如果只有左表或右表中有匹配的行,则返回对应表中的行;如果左表和右表中都没有匹配的行,则返回NULL值。
    • 语法:
    SELECT columns
    FROM table1
    FULL OUTER JOIN table2 ON table1.column = table2.column;
    
  5. 交叉连接(CROSS JOIN)

    • 交叉连接返回两个表中的所有可能的组合,即笛卡尔积。它不需要连接条件。
    • 语法:
    SELECT columns
    FROM table1
    CROSS JOIN table2;
    

JOIN子句是SQL中用于合并多个表的关键部分。根据业务需求,可以选择适当的连接类型来获取所需的结果集。


原文链接:codingdict.net