一文掌握SQL的 joins 语法


    目录
  • employees表
  • departments表
  • LEFT (OUTER) JOIN
  • RIGHT (OUTER) JOIN
  •  FULL (OUTER) JOIN
  • 总结

    SQL 中的不同 JOIN 类型:
    1. (INNER)JOIN(内连接):返回两个表中具有匹配值的记录。
    2. LEFT(OUTER)JOIN(左外连接):返回左表中的所有记录,以及右表中与之匹配的记录。
    3. RIGHT(OUTER)JOIN(右外连接):返回右表中的所有记录,以及左表中与之匹配的记录。
    4. FULL(OUTER)JOIN(全外连接):返回在左表或右表中有匹配的所有记录。
    
    现在详细举例说明:
    假设我们有两个表 employees 和 departments:
    
employee_idnamedepartment_id
1Alice1
2Bob2
3DavidNULL

    employees表
department_iddepartment_name
1HR
2Engineering
3Sales

    departments表
     INNER JOIN 
    
SELECT employees.name, departments.department_name  //要查的字段
FROM employees  //表1
INNER JOIN departments ON employees.department_id = departments.department_id;  //表2,连接条件

    结果是
    
namedepartment_name
AliceHR
BobEngineering

    LEFT (OUTER) JOIN
    LEFT JOIN 返回左表中的所有记录,以及右表中匹配的记录。如果右表中没有匹配的记录,则结果中包含 NULL。
    
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
 

    结果是
    
namedepartment_name
AliceHR
BobEngineering
DavidNULL

    RIGHT (OUTER) JOIN
    RIGHT JOIN 返回右表中的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则结果中包含 NULL。
    
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.department_id;

    结果是
    
namedepartment_name
AliceHR
BobEngineering
NULLSales

     FULL (OUTER) JOIN
    FULL JOIN 返回两个表中的所有记录,当左表或右表中有匹配时返回匹配的记录。如果没有匹配,则结果中包含 NULL。
    
SELECT employees.name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.department_id;

    
namedepartment_name
AliceHR
BobEngineering
DavidNULL
NULLSales

    总结
  • INNER JOIN:只返回两个表中匹配的记录。
  • LEFT JOIN:返回左表中的所有记录,以及右表中匹配的记录。
  • RIGHT JOIN:返回右表中的所有记录,以及左表中匹配的记录。
  • FULL JOIN:返回两个表中的所有记录,当左表或右表中有匹配时返回匹配的记录。

    希望这些示例能帮助你更好地理解 SQL 中的不同 JOIN 类型。
    到此这篇关于SQL的 joins 语法的文章就介绍到这了,更多相关SQL joins 语法内容请搜索电脑手机教程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持电脑手机教程网!