感谢原创: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);

连接查询:inner join,left join,right join的更多相关文章

  1. Hive的join表连接查询的一些注意事项

    Hive支持的表连接查询的语法: join_table: table_reference JOIN table_factor [join_condition] | table_reference {L ...

  2. oracle——外连接查询

    一.问题描述 有时我们为了保留某个表中的数据,而该表中的数据在另外一个关联表中未必都存在对应,此时就应该试用外连接查询. 比如:两个表,产品表和子产品表 注:子产品的parent_product_id ...

  3. sql连接查询中on筛选与where筛选的区别

    sql查询这个东西, 要说它简单, 可以很简单, 通常情况下只需使用增删查改配合编程语言的逻辑表达能力,就能实现所有功能. 但是增删查改并不能代表sql语句的所有, 完整的sql功能会另人望而生畏. ...

  4. Sql_连接查询中on筛选与where筛选的区别

    sql中的连接查询分为3种, cross join,inner join,和outer join ,  在 cross join和inner join中,筛选条件放在on后面还是where后面是没区别 ...

  5. 【连接查询】mySql多表连接查询与union与union all用法

    1.准备两个表 表a: 结构: mysql> desc a; +-------+-------------+------+-----+---------+-------+ | Field | T ...

  6. SQL语句--连接查询

    一.连接查询有以下几种 1.内连接查询 select * from t1 inner join t2 on t1.x = t2.x;  返回有关联的行 2.外链接查询 以下写法都省略了 中间的 out ...

  7. MariaDB 连接查询,视图,事物,索引,外键

    1.连接查询 --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name var ...

  8. MySQL-第十篇多表连接查询

    1.SQL92规范.SQL99规范 2.广义笛卡尔积,多表之间没有任何连接条件,得到的结果将是N x M条记录. 3.SQL92中的左外连接.右外连接,连接符有(+或*),放在连接条件那一边就叫做左或 ...

  9. 掌握MySQL连接查询到底什么是驱动表

    准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表, 创建表的SQL语句如下 CREATE TABLE `student` ( `id` int(11) NOT NUL ...

  10. MySQL连接查询驱动表被驱动表以及性能优化

    准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表, 创建表的SQL语句如下 CREATE TABLE `student` ( `id` int(11) NOT NUL ...

随机推荐

  1. react 渲染

    目录 React渲染 createElement的三个参数 element如何生成真实节点 ReactDOMComponent 作用 ReactCompositeComponentWrapper 作用 ...

  2. SpringBoot学习- 2、使用IDEA创建项目

    SpringBoot学习足迹 上一节使用sts创建项目,感觉只是基于eclipse做了一些界面定制,还是改使用IDEA开发,为了跟上时代,将使用IDEA最新版本,安装各种最新插件. 1.下载IDEA ...

  3. python使用selenium驱动chromium防止浏览器自动升级失效!

    python爬虫或者自动化项目中有时会用到selenium自动化测试框架,驱动chrom时由于谷歌浏览器自动升级,会造成驱动和浏览器版本不匹配问题,这时可以用到Chromium,这是谷歌推出用于开发目 ...

  4. react 和 vue 的优缺点总结

    React推广了Virtual DOM并创造了新的语法——JSX,JSX允许开发者在JavaScript中书写HTML Vue使用模板系统而不是JSX,但能对现有应用的升级更加容易,这是因为模板用的就 ...

  5. 转载:android audio policy

    Audio policy basic:https://www.cnblogs.com/CoderTian/p/5705742.html Set volume flow:https://blog.csd ...

  6. A conflict in the working copy obstructs the current operation

    svn: Commit failed (details follow): svn: Aborting commit: 'G:\chengXu\2017_Year\Easy7视频结构化\UploadFi ...

  7. mybatis(六):设计模式 - 适配器模式

  8. 1.6 APP需要怎么测试

    来源:  https://tieba.baidu.com/p/5011439767           http://www.cnblogs.com/testwriter/p/6702624.html ...

  9. YARN High Availablity

    1. RM Failover ResourceManager HA 由一个Active/Standby 架构实现:在任何时间点,仅有一个RM是Active,其他一个(或多个)RM节点处于Standby ...

  10. awk从放弃到入门(1):awk基础

    一.awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语言: AWK ...