现有两张表,Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的:
1.INNER JOIN 产生的结果是AB的交集
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name
3.RIGHT [OUTER] JOIN 产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。
SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.name = TableB.name
图标如left join类似。
4.FULL [OUTER] JOIN 产生A和B的并集。对于没有匹配的记录,则会以null做为值。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
你可以通过is NULL将没有匹配的值找出来:
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
WHERE TableA.id IS null OR TableB.id IS null
5. CROSS JOIN 把表A和表B的数据进行一个N*M的组合,即笛卡尔积。如本例会产生4*4=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。
SELECT * FROM TableA CROSS JOIN TableB
相关推荐
对于SQL中inner join、outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多,如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right...
* FULL OUTER JOIN:LEFT OUTER 和 RIGHT OUTER 中所有行的超集。 内连接(Inner Join) 内连接是最常见的一种连接,它也被称为普通连接,而 E.FCodd 最早称之为自然连接。例如: SELECT * FROM t_institution i ...
对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cross join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,...
表连接 内连接 外连接 交叉连接表连接 内连接 外连接 交叉连接表连接 内连接 外连接 交叉连接
Join on/inner join on/full join on/full outer join on/left join on/right join on/cross join on; 在使用jion时,on和where条件的区别;
SQL中大概有这么几种JOIN:cross joininner joinleft outer joinright outer joinfull outer join他们都是基于cross join(笛卡尔乘积),举例说明
SELECT [t0].[FirstName], [t0].[LastName], [t2].[TerritoryDescription] FROM [dbo].[Employees] AS [t0] CROSS JOIN [dbo].[EmployeeTerritories] AS [t1] INNER JOIN [dbo].[Territories] AS [t2] ON [t2]....
sql多表连接查询inner join, left join , right join ,full join ,cross join Posted on 2008-05-07 21:55 我开始懂了 阅读(21431) 评论(9) 编辑 收藏 inner join,full outer join,left join,right jion 内部连接 ...
一、多表连接类型 1. 笛卡尔积(交叉连接) ...一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN 2. 内连接INNER JOIN 在MySQL中把I SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELE
内连接(inner join)。 外连接: 全连接(full join)、左连接(left join)、右连接(right join)。 交叉联接(cross join)。 外连接与内连接不一样,外连接返回的查询结果中不仅包含符合条件的行,还包括左表(左...
一、外连接 1、左连接 left join 或 left outer join 2、右连接 right join 或 right outer join ...二、内连接 join 或 inner join 三、交叉连接 cross join 四、两表关系为一对多,多对一或多对多时的连接语句
INNER JOIN 仅对满足连接条件的CROSS中的列 LEFT OUTER JOIN 一个表满足条件的行,和另一个表的所有行 RIGHT OUTER JOIN 与LEFT相同,但两个表的角色互换 FULL OUTER JOIN LEFT OUTER 和 RIGHT OUTER中所有行的超集
交叉连接(CROSS JOIN):理解交叉连接的概念和使用场景。 自连接(SELF JOIN):在一个表内进行连接以解决特定问题。 子查询:在SELECT、INSERT、UPDATE、DELETE语句中使用子查询。 派生表(Derived Table):在...
数据库连接表查询 一、交叉连接(CROSS JOIN) 二、内连接(INNER JOIN) 三、外连接(OUTER JOIN)
FULL OUTER JOIN ( Product CROSS JOIN Color ) ON Catalog.item = Product.item AND Catalog.item_color = Color.color_name; 成为数据库专家 JOIN声明可以有效地找到你所需要的信息并避免带来麻烦。通过使用...
连接类型可以分为三种:内连接(INNER JOIN)、外连接(LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN)和交叉连接(CROSS JOIN)。 内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些...
交叉联接 得到所连接表的所有组合 (笛卡儿集)cross join 内联接得到连接表的满足条件的记录组合inner join on 外联接(左、右)得到一个表的所有行,及其余表满 足连接条件的行 full | left | right ...
外连接(LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN)返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表、右表或两个表中的所有数据行。 交叉连接(CROSS JOIN)返回被连接的两个表所有数据...
2.3.4 交叉联接(CROSS JOIN)/40 2.3.5 联接的替代写法/40 2.3.6 联合(UNION)/41 2.4 SQL数据类型/42 2.4.1 精确数字类型/43 2.4.2 近似数字类型/43 2.4.3 字符串类型/43 2.4.4 Unicode字符串类型/44 2.4.5 二...