美文网首页
mysql关联查询相关操作

mysql关联查询相关操作

作者: zkzhengmeng | 来源:发表于2019-10-14 13:34 被阅读0次

    关联查询sql编写的思路,1,先确定所连接的表,2,再确定所要查询的字段,3,然后确定连接条件以及连接方式

    常见的连接方式有以下几种:

    1. 内连接查询 关键字(inner join) 指所有查询出的结果都是能够在连接的表中有对应记录的。
    
    select  e.empName,d.deptName   from  t_employee e   INNER JOIN t_dept d  ON e.dept = d.id;
    
    
    2,左外连接查询 关键字是(left outer join或者left join) 是指以左边的表的数据为基准,去匹配右边的表的数据,如果匹配到就显示,匹配不到就显示为null
    //在这里,t_employee就是左表,也就是基准表,用基准表的数据去匹配右表的数据,
    所以左表的记录是全部会查询出来的,如果右表没有记录对应的话就显示null
    SELECT e.empName,d.deptName   from t_employee e  LEFT OUTER JOIN   t_dept d on d.id = e.dept;
    
    
    3,右外连接查询 关键字是(right outer join或者right join) 是指以左边的表的数据为基准,去匹配右边的表的数据,如果匹配到就显示,匹配不到就显示为null
    //在这里,t_employee就是右表,也就是基准表,用基准表的数据去匹配左表的数据,
    所以左表的记录是全部会查询出来的,如果左表没有记录对应的话就显示null
    SELECT e.empName,d.deptName   from t_employee e  RIGHT OUTER JOIN   t_dept d on d.id = e.dept;
    
    4,全外连接 把两张表的字段都查出来,没有对应的值就显示null,由于mysql是没有全外连接的(mysql中没有full outer join关键字),想要达到全外连接的效果,可以使用union关键字连接左外连接和右外连接
    /
    select e.empName,d.deptName
         FROM  t_employee e 
         left JOIN t_dept d
         ON e.dept = d.id
    UNION
    select e.empName,d.deptName
         FROM t_employee e 
         RIGHT JOIN t_dept d
         ON e.dept = d.id;
    
    
    5,自连接查询 就是当前表与自身的连接查询

    自连接查询就是当前表与自身的连接查询,关键点在于虚拟化出一张表给一个别名

    SELECT e.empName,b.empName
         from t_employee e
         LEFT JOIN t_employee b
         ON e.bossId = b.id;
    

    相关文章

      网友评论

          本文标题:mysql关联查询相关操作

          本文链接:https://www.haomeiwen.com/subject/latrmctx.html