内连接查询

查询的结果为两个表符合条件匹配到的数据。即两个表求交集。

以上两个表连接的条件是:

学生信息表.cls_id = 班级信息表.id

最终两个表连接效果:

语法格式

select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2

注意

-- 查询 有能够对应班级的学生及班级信息
SELECT * FROM students INNER JOIN classes ON students.cls_id = classes.id;

-- 显示姓名,班级
SELECT students.name,classes.name FROM students INNER JOIN classes ON students.cls_id = classes.id;

-- 给数据表起别名
SELECT s.name as "姓名",c.name as "班级" FROM students as s INNER JOIN classes as c ON s.cls_id = c.id;

内连接与 WHERE 写法的等价关系(理解用)

内连接常被理解为:

SELECT *
FROM students s, classes c
WHERE s.cls_id = c.id;

但更推荐使用显式 INNER JOIN ... ON ...,尤其是当查询里还包含外连接时(语义更清晰,减少误用)。

性能直觉(写慢时先看这里)

关联:连接查询 / 外连接查询 / 自连接查询 / 子查询 / 索引 / DQL