zoukankan      html  css  js  c++  java
  • MySQL之join查询介绍

    准备

      join主要根据两表或多表之间列的关系,从这些表中进行数据的查询。

      首先创建两张表:tb_emp(员工表)和tb_dept(部门表),并插入相关测试数据。

    1.tb_emp表。
    DROP TABLE IF EXISTS `tb_emp`;
    CREATE TABLE `tb_emp` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) NOT NULL,
      `deptid` int(11) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `idx_tb_emp_name` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    INSERT INTO `tb_emp`(name,deptid) VALUES ('jack', '1');
    INSERT INTO `tb_emp`(name,deptid) VALUES ('tom', '1');
    INSERT INTO `tb_emp`(name,deptid) VALUES ('tonny', '1');
    INSERT INTO `tb_emp`(name,deptid) VALUES ('mary', '2');
    INSERT INTO `tb_emp`(name,deptid) VALUES ('rose', '2');
    INSERT INTO `tb_emp`(name,deptid) VALUES ('luffy', '3');
    INSERT INTO `tb_emp`(name,deptid) VALUES ('outman', '14');
    
    2.tb_dept表。
    DROP TABLE IF EXISTS `tb_dept`;
    CREATE TABLE `tb_dept` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `deptname` varchar(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    INSERT INTO `tb_dept`(deptname) VALUES ('研发');
    INSERT INTO `tb_dept`(deptname) VALUES ('测试');
    INSERT INTO `tb_dept`(deptname) VALUES ('运维');
    INSERT INTO `tb_dept`(deptname) VALUES ('经理');

    从上表插入的数据可知outman是没有对应部门的。

    1. inner join

      注:A表示左表,B表示右表,下同。

      inner join:A、B共有,也就是交集

      

    2. left join

      left jion:A独有+AB共有(交集)

      

    3.right join

      right join:B独有+AB共有(交集)

      

    4.A独有

    注:参照left join,A独有只是将AB交集部分去掉。

    5.B独有

    注:参照right join,B独有只是将AB交集部分去掉。

    6.AB全有(并集)

    由于mysql中不支持full outer join,所以这里通过union进行转换。AB并集:AB交集+A独有+B独有

    7.A、B独有并集

    A、B独有并集,相当于A、B全有去掉AB的共有(交集)。

     

    参考:https://www.cnblogs.com/developer_chan/p/9207687.html

  • 相关阅读:
    centos crash debug
    go get Unknown SSL protocol error in connection to gopkg.in
    Tensorflow serving with Kubernetes
    Spring 集成 Swagger UI
    Docker Registry V2 Garbage Collection
    Docker Registry V2 with Nginx
    Zabbix磁盘性能监控
    Zabbix CPU utilization监控参数
    Windows挂载Gluster复制卷
    Redis持久化存储(三)
  • 原文地址:https://www.cnblogs.com/FondWang/p/12214489.html
Copyright © 2011-2022 走看看