zoukankan      html  css  js  c++  java
  • 连接查询:inner join,left join,right join

    感谢原创:https://blog.csdn.net/plg17/article/details/78758593

    准备工作:

      1)新建两张表a_table和b_table:  

    create table a_table(
    a_id int(10) primary key auto_increment,
    a_name varchar(10) default NULL,
    a_part varchar(10) default NULL)
    engine=innodb character set=utf8;

    create table b_table(
    b_id int(10) primary key auto_increment,
    b_name varchar(10) default NULL,
    b_part varchar(10) default NULL)
    engine=innodb character set=utf8;

      2)插入数据:

    insert into a_table values
    (1,'老潘','总裁部'),
    (2,'老王','秘书部'),
    (3,'老张','设计部'),
    (4,'老李','运营部');

    insert into b_table values
    (2,'老王','秘书部'),
    (3,'老张','设计部'),
    (4,'老刘','人事部'),
    (5,'老黄','生产部');

    1、内连接(Inner join)

      又称为简单连接,或者自然连接,是一种常见的连接查询 

    内连接使用比较运算符,对两个表中的数据,进行比较,并列出与连接条件匹配的数据行,组合成新的记录。

    在内连接查询中,只有满足条件的记录,才会出现在查询结果中。

      1.1语法:SELECT  查询字段   FROM   表1   [INNER]  JOIN   表2   ON   表1.关系字段=表2.关系字段;

      1.2理解:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。

      1.3举例:

    select * from a_table inner join b_table on a_table.a_id=b_table.b_id;

    2、左连接(Left join)

      2.1语法:SELECT  查询字段   FROM   表1   LEFT JOIN   表2   ON   表1.关系字段=表2.关系字段;

      2.2理解:left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。图中阴影部分为返回的记录。

           左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
     

      2.3举例:

    select * from a_table left join b_table on a_table.a_id=b_table.b_id;

    3、右连接(Right join)

        3.1语法:SELECT  查询字段   FROM   表1   RIGHT JOIN   表2   ON   表1.关系字段=表2.关系字段;

        3.2理解:right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。图中阴影部分为返回的记录。

            与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
        3.3例子:

    select * from a_table right join b_table on a_table.a_id=b_table.b_id;

    4、全连接

      暂不支持,但是可以通过MySQL模拟。语法如下:

    (select * from a_table left join b_table on a_table.a_id=b_table.b_id)
    union
    (select * from a_table right join b_table on a_table.a_id=b_table.b_id);

  • 相关阅读:
    《C语言》for语句(8)
    解决vue vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in nextTick: “TypeError: Cannot convert undefine
    React中WebSocket使用以及服务端崩溃重连
    React Native 中 react-navigation 导航器的使用 [亲测可用]
    ueditor 修改内容方法报错no funtion解决方式
    nodeJs与elementUI实现多图片上传
    Vue多页面开发案例
    Vue.js Cli 3.0 多页面开发案例解析
    基于node.js 微信支付notify_url回调接收不到xml
    react-image-gallery 加入视频图片混合显示
  • 原文地址:https://www.cnblogs.com/python-wen/p/10137299.html
Copyright © 2011-2022 走看看