MySql查询-连接查询

2020-03-20  本文已影响0人  GaoYuan117

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回

mysql支持三种类型的连接查询,分别为:

语法

select * from 表1 inner或left或right join 表2 on 表1.列 = 表2.列

示例:
-- 连接查询
    -- inner join ... on
    -- 交集
    -- select ... from 表A inner join 表B
    select * from student inner join classes;

    -- 查询 学生信息及对应班级信息
    select * from student inner join classes on student.cls_id = classes.id;

    -- 查询 学生信息及对应班级名字 不显示班级id
    select student.*,classes.name as class_name from student inner join classes on student.cls_id = classes.id;

    -- 查询 学生姓名 对应 班级名字
    select student.name,classes.name as class_name from student inner join classes on student.cls_id = classes.id;

    -- 给数据表起名字
    select s.*,c.name as class_name from student as s inner join classes as c on s.cls_id = c.id;

    -- 查询信息 班级名字显示在第一列
    select c.name,s.* from student as s inner join classes as c on s.cls_id = c.id;

    -- 按照班级进行排序
    select classes.name,student.* from student inner join classes on student.cls_id = classes.id order by classes.name asc;

    -- left join .. on ..
    -- 以左边的表的信息为基准取值
    -- 查询 每位学生对应的班级信息
    select * from student left join classes on student.cls_id = classes.id;

    -- 查询没有班级的学生信息
    select * from student left join classes on student.cls_id = classes.id having classes.id is null ;

上一篇 下一篇

猜你喜欢

热点阅读