找回密码
 立即注册
首页 业界区 安全 INNER JOIN, LEFT JOIN, RIGHT JOIN 的区别

INNER JOIN, LEFT JOIN, RIGHT JOIN 的区别

濮阳雅爱 2025-7-9 00:09:19
今天我们来一起探索下 JOIN,JOIN 作为数据库操作的核心概念,用于合并两个或多个表中的数据。
一、JOIN (INNER JOIN)
1、基本功能:返回两个表中匹配成功的行。
2、特点:

  • 只保留两表中都满足连接条件的记录;
  • 如果某行在一个表中存在但在另一个表中没有匹配项,则该行不会出现在结果中;
  • 结果集的行数两个原表的行数。
3、语法
  1. SELECT columns
  2. FROM table1
  3. [INNER] JOIN table2 ON table1.column = table2.column;
复制代码
4、示例
  1. SELECT orders.order_id, customers.customer_name
  2. FROM orders
  3. INNER JOIN customers ON orders.customer_id = customers.customer_id;
复制代码
二、LEFT JOIN (LEFT OUTER JOIN)
1、基本功能:返回左表的所有行,即使右表中没有匹配。
2、特点

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

  • 保留右表的全部记录;
  • 当左表无匹配时,左表字段显示为 NULL
  • 结果集的行数 = 右表的行数;
  • 实际使用较少,通常可以用 LEFT JOIN 替代。
3、语法
  1. SELECT columns
  2. FROM table1
  3. RIGHT [OUTER] JOIN table2 ON table1.column = table2.column;
复制代码
4、示例
  1. SELECT employees.name, departments.department_name
  2. FROM employees
  3. RIGHT JOIN departments ON employees.dept_id = departments.dept_id;
复制代码
实际使用建议

  • INNER JOIN 是最常用的,适用于需要两个表都有数据的场景;
  • LEFT JOIN 常用于需要主表完整数据,关联表可有可无的情况;
  • RIGHT JOIN 使用较少,通常可以通过调换表顺序用 LEFT JOIN 实现;
  • 注意 NULL 值的处理,特别是在 WHERE 条件中。
在强者的世界中,即便是戴着镣铐跳舞,舞也会跳得铿锵有力。-- 烟沙九洲

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册