等值连接mysql_MySQL的左连接、右连接、等值连接
三种连接的语法
为便于更多的技友快速读懂、理解,我们只讨论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的左连接、右连接、等值连接相关推荐
- linq to entity 左联接 右连接 以及内连接写法的区别(转)
linq to entity 左连接 右连接 以及内连接写法的区别 还有就是用lambda表达式怎么写,那个效法效率高些? [解决办法] 左连右连还是内连这个其实你不需要关心.只需要根据实体的映射关 ...
- mysql左连接和内连接区别_MYSQL 左连接右连接和内连接的详解及区别
MYSQL 左连接右连接和内连接的区别,这里就对这些概念经过一个实例,讲解清楚. 代码如下: drop table table1; CREATE TABLE `andrew`.`table1` ( ` ...
- mysql的内连接左连接右连接有什么区别_MySQL 的内连接、左连接、右连接有什么区别?...
1.外连接–左连接结果 table1居左,故谓之左连接.这种情况下,以table1为主,即table1中的所有记录均会被列出.有一下三种情况: 一个.对于table1中的每一条记录对应的城市如果在ta ...
- SQL连接的理解和使用(内连接:自然连接等值连接,外连接:左连接右连接全外连接)
目录 一.连接的介绍 连接是什么? 连接分几种? 条件连接 等值连接 自然连接 二.连接的使用 内连接 INNER JOIN 内连接与等值连接区别 内连接与自然连接区别 外连接 OUTER JOIN ...
- Oracle 多表查询 --笛卡尔集--左连接--右连接--1999 语法--满外连接
Oracle 多表查询总结 笛卡尔集现象: 笛卡尔集会在下面条件下产生: – 省略连接条件 – 连接条件无效 – 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在where加入有效的连接条件. O ...
- from_子句-内连接-左连接-右连接
此文有网上多片好文 拼接而成 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录(以左表主表,右表为辅表) right join(右联接) 返回包括右表中的所有记录和左表 ...
- 数据库内、外、左、右连接详解
写在前面: 数据库连接操作非常重要,明确连接操作有助于更好地掌握SQL语句查询操作. 数据库连表方式: 内连接 :inner join 外连接 :outer join 左外连接 :left outer ...
- 数据库 左连接 右连接 全连接用法小结
连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来.所以,在Transact-SQL中推荐使用这种 ...
- 连接查询_左连接/右连接/全连接的区别
介绍表连接,更确切的说是inner joins內连接. 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来. 为更好的理解这个概念,我们介绍两个表作演示.苏格兰议会中的政 ...
最新文章
- php调用dll函数,[转载]matlab调用DLL中的函数
- mybatis入门(四)之动态SQL
- 机器学习相关知识 大佬博客整理
- Qt文档阅读笔记-Semaphores Example解析(信号量并发实例)
- JavaScript------表单约束验证DOM方法
- 【编译打包】nginx_1.6.2-1~precise.debian.tar.gz
- stride padding_关于Padding实现的一些细节
- c语言写16进制转2进制,[求助]如何实现16进制转2进制
- 新英格兰10机39节点matlab建模,ieee10机39节点系统数据
- 如何发布google离线地图及二次开发API
- ad7705c语言程序,基于51单片机的的AD7705的运用
- 计算机按电源键无法反应,笔记本无法正常开机,按下电源键无任何反应要过一段时间才可以开机...
- 互斥量、临界区、信号量、事件标志组和消息邮箱
- 《蓝莓之夜》经典台词
- 电磁场与电磁波(10)——电容与部分电容
- 芯片检测(分治法经典问题)
- 2023 年 3 月阿拉丁指数榜单更替率 18%
- “宜家一日游”之后,我终于搞懂了“蹭睡族”的心路历程
- ThreeJs基础常识
- java枚举类型的构造和get\set方法