剖析内连接、左连接及右连接的差异

3周前发布 gsjqwyl
14 0 0

剖析内连接、左连接与右连接的区别

当下我们一同来探究JOIN这一数据库操作的关键概念,它用于整合两个或多个表的数据。

一、内连接(INNER JOIN)

  1. 基本功能:获取两个表中匹配成功的行。
  2. 特点
  3. 仅留存两表中均满足连接条件的记录;
  4. 若某行在一个表中存在但在另一个表中无匹配项,该行不会出现在结果里;
  5. 结果集的行数小于等于两个原表的行数。
  6. 语法
SELECT columns
FROM table1
[INNER] JOIN table2 ON table1.column = table2.column;
  1. 示例
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

二、左连接(LEFT JOIN)

  1. 基本功能:返回左表的所有行,即便右表中没有匹配项。
  2. 特点
  3. 保留左表的全部记录;
  4. 当右表无匹配时,右表字段显示为NULL;
  5. 结果集的行数等于左表的行数。
  6. 语法
SELECT columns
FROM table1
LEFT [OUTER] JOIN table2 ON table1.column = table2.column;
  1. 示例
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.dept_id;

三、右连接(RIGHT JOIN)

  1. 基本功能:返回右表的所有行,就算左表中没有匹配项。
  2. 特点
  3. 保留右表的全部记录;
  4. 当左表无匹配时,左表字段显示为NULL;
  5. 结果集的行数等于右表的行数;
  6. 实际使用较少,通常可用左连接替代。
  7. 语法
SELECT columns
FROM table1
RIGHT [OUTER] JOIN table2 ON table1.column = table2.column;
  1. 示例
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.dept_id = departments.dept_id;

实际使用建议

  • 内连接是最常用的,适用于需要两个表都有对应数据的场景;
  • 左连接常用于需要主表完整数据,关联表可有可无的情况;
  • 右连接使用较少,通常能通过调换表的顺序用左连接来实现;
  • 注意对NULL值的处理,尤其是在WHERE条件中。

在强者的天地中,即便戴着镣铐起舞,舞也会跳得铿锵有力。– 烟沙九洲

© 版权声明

相关文章

没有相关内容!

暂无评论

none
暂无评论...