- 联表查询
- 内联查询(取等号两边的交集)
当两张相比如学生表中的班级id和班级表的id一致
select 表A字段,表B字段 from 表A inner join 表B on 表A字段=表B字段;
select students.name,classes.name from students inner join classes on students.cls_id=classes.id;
联表查询并排序
select students.id,students.name,classes.name from students inner join classes on students.cls_id=classes.id order by classes.name,students.id;
- 左连接
以left左边的表为基准,left右边的表没有则显示为null
select * from students left join classes on students.cls_id=classes.id;- 右连接同做连接一样,以right右边表为基准,其实就相当于将左连接的表A和表B调换位置,因此很少用右连接,直接以左连接代替
- 自关联
准备数据
create table heros(
id int auto_crement primary key not null,
name varchar(20) not null,
p_id int
)