三种连接的语法

为便于更多的技友快速读懂、理解,我们只讨论2张表对象进行连接操作的情况,大于2张表对象进行的连接操作原理也是一样的。

1.左连接(LEFT JOIN )

SELECT M.columnname……,N.* columnname…..

FROM left_table M LEFT JOIN right_table N ON M.columnname_join=N.columnname_join AND N.columnname=XXX

WHERE M.columnname=XXX…..

2.右连接(RIGHT JOIN)

SELECT M.columnname……,N.* columnname…..

FROM left_table M RIGHT JOIN right_table N ON M. columnname_join=N. columnname_join AND M. columnname=XXX

WHERE N.columnname=XXX…..

3.等值连接

SELECT M.columnname……,N.* columnname…..

FROM left_table M [INNER] JOIN right_table N ON M. columnname_join=N. columnname_join

WHERE M.columnname=XXX….. AND N.columnname=XXX….

或者

SELECT M.columnname……,N.* columnname…..

FROM left_table M  , right_table N

WHERE M. columnname_join=N. columnname_join AND

M.columnname=XXX….. AND N.columnname=XXX….

说明:

A.左连接(LEFT JOIN )

ON字句连接条件,用于把2表中等值的记录连接在一起,但是不影响记录集的数量。若是表left_table中的某记录,无法在表right_table找到对应的记录,则此记录依然显示在记录集钟,只是表 right_table需要在查询显示的列的值用NULL替代;

ON字句连接条件中表right_table.columnname=XXX用于控制right_table表是否有符合要求的列值还是用NULL替换的方式显示在查询列中,不影响记录集的数量;

WHERE字句控制记录是否符合查询要求,不符合则过滤掉;

简单点说,就是 “left_table.columnname_join=right_table.columnname_join”用于统计两个表的等值连接的记录集,on子句

连接条件就是限制right_table的记录集大小,where子句的条件是限制最终结果集的大小。最终结果集的大小是显示“left_table“表的所有记录,和“left_table“匹配的”right_table“的记录显示”right_table“列值,不匹配的话,显示对应的”right_table“显示为null(最终结果集的大小是left_table刨除where条件的记录数)

B.右连接(RIGHT JOIN)

ON子句连接条件,用于把2表中等值的记录连接在一起,若是表right_table中的某记录,无法在表left_table找到对应的记录,则表 left_table需要在查询显示的列的值用NULL替代;

ON子句连接条件中表left_table.columnname=XXX用于控制left_table表是否有符合要求的列值,还是用NULL替换的方式显示在查询列表中;

WHERE字句控制记录是否符合查询要求,不符合则过滤掉;

简单点说,就是 “left_table.columnname_join=right_table.columnname_join”用于统计两个表的等值连接的记录集,on子句

连接条件就是限制left_table的记录集大小,where子句的条件是限制最终结果集的大小。最终结果集的大小是显示“right_table”表的所有记录,和“right_table“匹配的”left_table“的记录显示”left_table“列值,不匹配的话,显示对应的”left_table“显示为null(最终结果集的大小是left_table刨除where条件的记录数)

C. 等值连接

ON子句连接条件,不再与左连接或右连接的功效一样,除了作为2表记录匹配的条件外,还会起到过滤记录的作用,若left_table中记录无法在right_table中找到对应的记录,则会被过滤掉;

WHERE字句,不管是涉及表left_table、表right_table上的限制条件,还是涉及2表连接的条件,都会对记录集起到过滤作用,把不符合要求的记录刷选掉;

等值连接mysql_MySQL的左连接、右连接、等值连接相关推荐

  1. linq to entity 左联接 右连接 以及内连接写法的区别(转)

    linq to entity 左连接 右连接 以及内连接写法的区别  还有就是用lambda表达式怎么写,那个效法效率高些? [解决办法] 左连右连还是内连这个其实你不需要关心.只需要根据实体的映射关 ...

  2. mysql左连接和内连接区别_MYSQL 左连接右连接和内连接的详解及区别

    MYSQL 左连接右连接和内连接的区别,这里就对这些概念经过一个实例,讲解清楚. 代码如下: drop table table1; CREATE TABLE `andrew`.`table1` ( ` ...

  3. mysql的内连接左连接右连接有什么区别_MySQL 的内连接、左连接、右连接有什么区别?...

    1.外连接–左连接结果 table1居左,故谓之左连接.这种情况下,以table1为主,即table1中的所有记录均会被列出.有一下三种情况: 一个.对于table1中的每一条记录对应的城市如果在ta ...

  4. SQL连接的理解和使用(内连接:自然连接等值连接,外连接:左连接右连接全外连接)

    目录 一.连接的介绍 连接是什么? 连接分几种? 条件连接 等值连接 自然连接 二.连接的使用 内连接 INNER JOIN 内连接与等值连接区别 内连接与自然连接区别 外连接 OUTER JOIN ...

  5. Oracle 多表查询 --笛卡尔集--左连接--右连接--1999 语法--满外连接

    Oracle 多表查询总结 笛卡尔集现象: 笛卡尔集会在下面条件下产生: – 省略连接条件 – 连接条件无效 – 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在where加入有效的连接条件. O ...

  6. from_子句-内连接-左连接-右连接

    此文有网上多片好文 拼接而成 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录(以左表主表,右表为辅表) right join(右联接) 返回包括右表中的所有记录和左表 ...

  7. 数据库内、外、左、右连接详解

    写在前面: 数据库连接操作非常重要,明确连接操作有助于更好地掌握SQL语句查询操作. 数据库连表方式: 内连接 :inner join 外连接 :outer join 左外连接 :left outer ...

  8. 数据库 左连接 右连接 全连接用法小结

    连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来.所以,在Transact-SQL中推荐使用这种 ...

  9. 连接查询_左连接/右连接/全连接的区别

    介绍表连接,更确切的说是inner joins內连接. 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来. 为更好的理解这个概念,我们介绍两个表作演示.苏格兰议会中的政 ...

最新文章

  1. php调用dll函数,[转载]matlab调用DLL中的函数
  2. mybatis入门(四)之动态SQL
  3. 机器学习相关知识 大佬博客整理
  4. Qt文档阅读笔记-Semaphores Example解析(信号量并发实例)
  5. JavaScript------表单约束验证DOM方法
  6. 【编译打包】nginx_1.6.2-1~precise.debian.tar.gz
  7. stride padding_关于Padding实现的一些细节
  8. c语言写16进制转2进制,[求助]如何实现16进制转2进制
  9. 新英格兰10机39节点matlab建模,ieee10机39节点系统数据
  10. 如何发布google离线地图及二次开发API
  11. ad7705c语言程序,基于51单片机的的AD7705的运用
  12. 计算机按电源键无法反应,笔记本无法正常开机,按下电源键无任何反应要过一段时间才可以开机...
  13. 互斥量、临界区、信号量、事件标志组和消息邮箱
  14. 《蓝莓之夜》经典台词
  15. 电磁场与电磁波(10)——电容与部分电容
  16. 芯片检测(分治法经典问题)
  17. 2023 年 3 月阿拉丁指数榜单更替率 18%
  18. “宜家一日游”之后,我终于搞懂了“蹭睡族”的心路历程
  19. ThreeJs基础常识
  20. java枚举类型的构造和get\set方法

热门文章

  1. wujian100学习笔记(4)修改RTL后综合,实现以及生成比特流
  2. ctf(夺旗赛)的竞赛模式以及题目类型
  3. 小程序代理商为什么做不起来,7种拓客方法解决困惑
  4. labview如何读取gif文件并显示
  5. ToF传感器究竟有多神奇?本文告诉你!
  6. What is Continuous Delivery?
  7. CentOS6 64 安装/卸载 JDK
  8. int linux 原子操作_Linux原子操作
  9. 微信云开发+vant weapp实现图片上传
  10. vant混合表单校验,以及标题前加※