以学生系统为例

1.  为班级添加班级名, 用于做展示.

SQL 06: 内连接 (多表查询)_单表查询

 

 

 

 

 

 2. 如果查询学生在哪个班级里, 使用单表查询,则需要做两次查询:

查学生表,得到目标学生的class_id ----》 查班级表, select * from class where id = 1;

SQL 06: 内连接 (多表查询)_数据_02

 

 

 3.使用多表查询

select * from student,class;   会发生数据互补

SQL 06: 内连接 (多表查询)_内连接_03

 

剔除不需要的数据, 通过某个条件连接起来,我们称之为内连接:

1. select * from student,class where student.class_id = class.id; 

SQL 06: 内连接 (多表查询)_多表查询_04

 

 2. select * from student s, class c where s.class_id = c.id;

给student起别名为s, class 起别名为c

 

3. 剔除多余的列 

select  s.id,s.name,s.age,s.sex,c.name from student s, class c where s.class_id = c.id;

SQL 06: 内连接 (多表查询)_内连接_05

 4.  三表操作, 获取学生档案

select * from student s, class c, studentfile sf where s.class_id = c.id and s.id = sf.student_id; 

SQL 06: 内连接 (多表查询)_内连接_06

 

 

(学生里面只有两个人有档案, 故只有两条显示结果)