102. python高级------MySQl数据库的条件查询(4)

102. python高级------MySQl数据库的条件查询(4)

python修炼第二十四天

2019年 4月 23日 晴

6.连接查询

inner join ... on
select ... from 表A inner join 表B;
– 查询 有能够对应班级的学生以及班级信息\

select * from 表a inner join 表B on 条件;

select * from students inner join classes
 on students.cls_id = classes.id;


select * from students inner join classes
 on students.cls_id = classes.id where students.gender ='女';

– 按照要求显示姓名、班级

select students.name,classes.name from students inner join classes
 on students.cls_id = classes.id;

– 给数据表起名字

select s.name,c.name from students as s 
inner join classes as c on s.cls_id = c.id;

– 查询 有能够对应班级的学生以及班级信息,显示学生的所有信息 students.*,只显示班级名称 classes.name.

select students.* ,classes.name from students inner join classes
 on students.cls_id = classes.id;

– 在以上的查询中,将班级名显示在第1列

select classes.name ,students.*  from students inner join classes
 on students.cls_id = classes.id;

– 查询 有能够对应班级的学生以及班级信息, 按照班级名进行排序

select classes.name ,students.*  from students inner join classes
 on students.cls_id = classes.id order by classes.name;

– 当时同一个班级的时候,按照学生的id进行从小到大排序

select classes.name ,students.*  from students inner join classes

on students.cls_id = classes.id 

order by classes.name asc ,students.id asc;

left join
– 查询每位学生对应的班级信息

select * from students left join classes on 
students.cls_id = classes.id;

– 查询没有对应班级信息的学生

select * from students left join classes on 
students.cls_id = classes.id where classes.name is null;

right join on
– 将数据表名字互换位置,用left join完成

select * from students right join classes on 
classes.id = students.cls_id;

猜你喜欢

转载自blog.csdn.net/qq_40455733/article/details/89503622