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;