在 MySQL 中,内连接(INNER JOIN)、左连接(LEFT JOIN)和右连接(RIGHT JOIN)是用于在多个表之间进行相关查找的方式。它们之间的区别如下:
1、内连接(INNER JOIN): 内连接返回两个表中匹配的行,仅有在连接要求满足时才返回结果。即只返回两个表中共有的数据。
示例脚本: sqlCopy Code-- 假设有两个表:students 和 scores
-- 查找学生及其对应的成绩信息
SELECT students.name, scores.score
FROM students
INNER JOIN scores ONstudents.id = scores.student_id;在以上示例中,运用 INNER JOIN 将 students 表和 scores 表连接起来,并且只返回两个表中 student_id 匹配的行。
2、左连接(LEFT JOIN): 左连接返回左表中的所有行,以及与右表匹配的行。倘若右表中无匹配的行,则返回 NULL 值。
示例脚本: sqlCopy Code-- 假设有两个表:departments 和 employees
-- 查找分部及其对应的员工信息
SELECT departments.name, employees.name
FROM departments
LEFT JOIN employees ONdepartments.id = employees.department_id;在以上示例中,运用 LEFT JOIN 将 departments 表和 employees 表连接起来,并且返回 departments 表中的所有行,以及与之匹配的 employees 表中的行。倘若某个分部无对应的员工,则返回 NULL 值。
3、右连接(RIGHT JOIN): 右连接返回右表中的所有行,以及与左表匹配的行。倘若左表中无匹配的行,则返回 NULL 值。
示例脚本: sqlCopy Code-- 假设有两个表:orders 和 customers
-- 查找订单及其对应的客户信息
SELECTorders.order_number, customers.nameFROM orders
RIGHT JOIN customers ON orders.customer_id = customers.id;
在以上示例中,运用 RIGHT JOIN 将 orders 表和 customers 表连接起来,并且返回 customers 表中的所有行,以及与之匹配的 orders 表中的行。倘若某个客户无对应的订单,则返回 NULL 值。
总结: 内连接(INNER JOIN)返回两个表中匹配的行。左连接(LEFT JOIN)返回左表中的所有行,以及与右表匹配的行。右连接(RIGHT JOIN)返回右表中的所有行,以及与左表匹配的行。 这些连接类型能够按照实质需求选取,以实现区别的查找规律。
|