MySQL中 inner join
封面图
•
2025-11-23
•
MySQL
180
0
0
0
在 MySQL 中,`INNER JOIN` 是一种用于从两个或多个表中检索数据的 SQL 操作。它根据指定的条件(通常是两个表之间的关联列)将两个表连接起来,**只返回匹配的行**。 --- ## ✅ 语法格式: ```sql SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column; ``` - `table1` 和 `table2` 是要连接的两个表。 - `ON` 子句定义了连接条件(即两个表之间关联的字段)。 --- ## 📌 示例说明 假设有两个表: ### 表1:`employees` | id | name | department_id | |----|--------|---------------| | 1 | Alice | 1 | | 2 | Bob | 2 | | 3 | Charlie| 3 | ### 表2:`departments` | id | name | |----|----------| | 1 | HR | | 2 | IT | | 4 | Marketing| 现在我们要查询每个员工所属的部门名称: ```sql SELECT employees.name, departments.name AS department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id; ``` ### 查询结果: | name | department_name | |--------|-----------------| | Alice | HR | | Bob | IT | > 注意:Charlie 的 `department_id = 3` 在 `departments` 表中没有对应的记录,所以不会出现在结果中。 --- ## 🔍 INNER JOIN 与其它 JOIN 的区别 | 类型 | 说明 | |--------------|--------------------------------------------------------------| | `INNER JOIN` | 只返回两个表中 **匹配的行** | | `LEFT JOIN` | 返回左表的所有行,即使右表中没有匹配的行(右表字段为 NULL) | | `RIGHT JOIN` | 返回右表的所有行,即使左表中没有匹配的行(左表字段为 NULL) | | `FULL JOIN` | 返回两个表的所有行(MySQL 不支持,但可以用 `UNION` 模拟) | --- ## ✅ 使用场景 - 当你只需要获取两个表中**有对应关系的数据**时使用 `INNER JOIN`。 - 常用于多表查询、报表生成、数据汇总等场景。 --- 如果你有具体的表结构或查询需求,我可以帮你写出更详细的 `INNER JOIN` 查询语句 😊
上一篇:
sql求连续点击三次的用户数,中间不能有别人的点击
下一篇:
mysql查询课程编号为 01 的课程比 02 的课程成绩高的所有学生的学号
标题录入,一次不能超过6条
留言
评论