Left/right join 和inner join 区别

举个例子: 
假设a表和b表的数据是这样的。 
a b 
id name  id stock  
1  a 1 15 
2 b 2 50 
3 c   

select * from a inner join b on a.id=b.id 
这个语法是连接查询中的内连接,它产生的结果是 
两个表相匹配的记录出现在结果列表中。 
根据上面的表,出现的结果是这样的 
a.id name b.id stock 
1   a 1 15 
2 b 2 50 
---------------------------- 
select * from a,b where a.id=b.id 
这个语法是内连接的另外一种写法,其执行结果与inner join 一样 

-------------------------------- 

select * from a left/right join b on a.id=b.id 
这个是外连接语法中的左外连接或右外连接 
如果是左外连接的话,它将显示a表的所有记录, 
select a.*,b.* from a left join b on a.id=b.id 
查询的结果是这样的: 
a.id name b.id stock 
1   a 1 15 
2 b 2 50 
3 c null null  
-------------------------------------------- 
如果是右外连接的话,它将显示b表的所有记录, 
select a.*,b.* from a right join b on a.id=b.id 
查询的结果是这样的: 
a.id name b.id stock 
1   a 1 15 
2 b 2 50 

时间: 2024-09-15 11:11:47

Left/right join 和inner join 区别的相关文章

sql语句中left join、inner join中的on与where的区别

原文:sql语句中left join.inner join中的on与where的区别 table a(id, type): id     type ---------------------------------- 1      1         2      1          3      2          table b(id, class): id    class --------------------------------- 1      1 2      2 sql语

图解SQL的inner join、left join、right join、full outer join、union、union all的区别

SQL的Join语法有很多,inner join(等值连接) 只返回两个表中联结字段相等的行,left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,看到一篇图解文章,非常清楚简洁的说明了使用JOIN操作后的结果集是什么格式. 假设我们有两张表.Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同的,如下所示: A表 id name 1 P

SQL Server的Inner Join及Outer Join

当然 Join 如何将不同的数据库的资料结合, 还要看你如何使用它, 一共有四种不同的 Join 的方式, 在这篇文章中我们将为你介绍 Inner Join 及 Outer Join 以及其应用. 在一个正规化的数据库环境中, 我们常会碰到这款情形: 所需的资料并不是放在同一个资料表中, 在这个时候, 你就要用到 Join. 当然 Join 如何将不同的数据库的资料结合, 还要看你如何使用它, 一共有四种不同的 Join 的方式, 在这篇文章中我们将为你介绍 Inner Join 及 Outer

那些关于SQL的连接【inner join、left join、right join】

1.概述 SQL JOIN SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据. Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 数据库中的表可通过键将彼此联系起来.主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的.在表中,每个主键的值都是唯一的.这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起. 请看 "Persons" 表: Id_P LastN

SQL之left join、right join、inner join的区别浅析_数据库其它

今天和某朋友聊天,谈到他们公司的一个小问题.如下: 表A设备表,存储MAC地址,省份,城市,区. 表B软件表,存储MAC地址,软件名字. 功能是可以按省份,城市,或者区来查询软件列表. 你猜它现在如何做的? 它通过省份,城市,或者区取得MAC地址,然后查询B表用in查询. 这个很明显是不合理的,处理这种多对多的关系,为什么不用多表联查呢? 链表的方法常用的有3个: (inner) join 内部等值连接.left join 左连接 和 right join右连接. 有什么区别呢?怎么用呢? 下面

mysql中left join、right join、inner join的区别

 今天和某朋友聊天,谈到他们公司的一个小问题.如下:  表A设备表,存储MAC地址,省份,城市,区. 表B软件表,存储MAC地址,软件名字. 功能是可以按省份,城市,或者区来查询软件列表. 你猜它现在如何做的? 它通过省份,城市,或者区取得MAC地址,然后查询B表用in查询.     这个很明显是不合理的,处理这种多对多的关系,为什么不用多表联查呢? 链表的方法常用的有3个: (inner) join 内部等值连接.left join 左连接 和 right join右连接.     有什么区别

oracle中left join和right join的区别浅谈_oracle

通俗的讲:     A   left   join    B    的连接的记录数与A表的记录数同     A   right   join    B    的连接的记录数与B表的记录数同       A   left   join    B    等价B   right   join    A   table    A:     Field_K,    Field_A    1                        a    3                        b   

面试之SQL(2)--left join, inner join 和 right join的区别

表A记录如下: aID        aName 1           a1 2           a2 3           a3 4           a4 5           a5 表B记录如下: bID        bXuehao 1           2006102401 2           2006102402 3           2006102403 4           2006102404  6           2006102406   SELEC

sql之left join、right join、inner join的区别

问题描述 leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录innerjoin(等值连接)只返回两个表中联结字段相等的行举例如下:--------------------------------------------表A记录如下:aID aNum1 a200501112 a200501123 a200501134 a200501145 a20050115表B记录如下:bID bName1 2