mysql之左连接与右连接

http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559593.html

******************************************************************

左连接:

select 列1,列2,列N from

tableA left join tableB

on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]

where,having,group by ...照常写。

右连接:

select 列1,列2,列N from

tableA right join tableB

on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]

where,having,group by ...照常写。

内连接:

select 列1,列2,列N from

tableA inner join tableB

on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看]

where,having,group by ...照常写。

左连接:即以左表为基准,到右表找匹配的数据,找不到匹配的用NULL补齐。

如何记忆:

1.左右连接是可以相互转化的

2.可以把右连接转换为左连接来使用(并推荐左连接来代替右连接,兼容性会好一些)

A 站在 B的左边   ---》 B 站在 A的右边

A left join B --->  B right join A 是同样的。

内连接:查询左右表都有的数据,不要左/右中NULL的那一部分

内连接是左右连接的交集。

能否查出左右连接的并集呢?

目前的mysql是不能的,它不支持外连接,outer join,可以用union来达到目的。

时间: 2024-08-09 19:53:14

mysql之左连接与右连接的相关文章

【转】mysql数据库中实现内连接、左连接、右连接

[转]mysql数据库中实现内连接.左连接.右连接 内连接:把两个表中数据对应的数据查出来 外连接:以某个表为基础把对应数据查出来 首先创建数据库中的表,数据库代码如下: /* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50150 Source Host : localhost:3306 Source Database : store Target Server Type

mysql之内连接,外连接(左连接,右连接),union,union all的区别

内连接,外连接,左连接,右连接,全连接 测试数据: CREATE TABLE `a_table` ( `a_id` int(11) DEFAULT NULL, `a_name` varchar(10) DEFAULT NULL, `a_part` varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into a_table values(1,"老潘","总裁部"),(2,&quo

Oracle 左连接,右连接,内链接。【百度知道】

只要是两张以上的表关联查询的时候,就会返回一个笛卡尔乘积,数据库会去掉那些冗余的数据,只返回有用的数据.我们用左连接和右连接查询的时候就会把那些冗余的数据也查询出来,还有双向连接也是.Oracle数据库的左连接和右连接在Oracle PL-SQL中,左连接和右连接以如下方式来实现 查看如下语句: SELECT emp_name, dept_name FORM Employee, Department WHERE Employee.emp_deptid(+) = Department.deptid

Oracle左连接、右连接、全外连接以及(+)号用法(转)

Oracle  外连接(OUTER JOIN) 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/FULL OUTER JOIN. 通常省略OUTER关键字, 写成:LEFT/RIGHT/FULL JOIN. 在左连接和右连接时都会以一张A表为基础表,该表的内容会全部显示,然后加上A表和B表匹配的内容. 如果A表的数据在B表中没有记录. 那么在相关联的结果集行中列显示为空值(NULL). 对于外连接, 也可以使用“(+)

Oracle左连接、右连接、全外连接以及(+)号用法

阅读目录 1.准备工作 2.左外连接(LEFT OUTER JOIN/ LEFT JOIN) 3.右外连接(RIGHT OUTER JOIN/RIGHT JOIN) 4.全外连接(FULL OUTER JOIN/FULL JOIN) 1.准备工作 Oracle  外连接(OUTER JOIN)包括以下: 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/FULL OUTER JOIN. 通常省略OUTER关键字, 写成:

SQL左连接、右连接和内连接的简单示例

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接) 只返回两个表中联结字段相等的行:举例如下: -------------------------------------------- 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录

数据库中内连接和左连接和右连接的区别

假设有两张表: A表有四行四列数据;B表有两行两列数据;它们之间通过ID关联;假设它们之间的ID有两个相同; 则: select * from A a left (outer)  join B  b  on a.bid=b.id; 显示为:A表的四行四列全部显示,而B表满足条件的两条数据则全部显示; A. 1                A.2                      A.3                 A.4                 B.1          

SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)

SQL 连接 JOIN 例解.(左连接,右连接,全连接,内连接,交叉连接,自连接) 最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连接的问题,回答不尽理想-现在在这写写关于它们的作用假设有如下表: 一个为投票主表,一个为投票者信息表-记录投票人IP及对应投票类型,左右连接实际说是我们联合查询的结果以哪个表为准-1:如右接连 right join 或 right outer join:我们以右边voter表为准,则左表(voteMaster)中的记录只有当其ID在右边(voter)中存

数据库表连接(内连接,外连接【左连接、右连接、全连接】交叉连接)

左连接和右连接: 左连接:以左表为基准进行查询,左表数据全部进行显示,右表中显示与左表匹配的全部数据,不匹配的则显示为null 右连接(与左连接完全相反):以右表为基准进行查询,右表数据全部显示出来,左表中与右表匹配的数据全部显示出来,不匹配的则显示为null 全连接(左连接与右连接的结合体):先以左表为基准进行查询显示,再以右表为基准进行查询显示 基准:以某张表的限制条件查询为准! book表 bookID bookName studentID 1 <红楼梦> 0003 2 <水浒传&

数据库中的左连接和右连接的区别

数据库中的左连接和右连接的区别     今天,别人问我一个问题:数据库中的左连接和右连接有什么区别?如果有A,B两张表,A表有3条数据,B表有4条数据,通过左连接和右连接,查询出的数据条数最少是多少条?最多是多少条?     我被这个问题问住了,后来我去问了数据库开发人员,结果结果各种各样:     a 最大12  最小0     b 最大12  最小未知     c 最大未知 最小为3     d 最大12   最小为3     e 不清楚 1.说明 (1)左连接:只要左边表中有记录,数据就能