SQL中inner join,outer join和cross join的区别

SQL中inner join,outer join和cross join的区别


慕容森
浏览 491回答 3
3回答

慕婉清6462132

交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积,返回记录的个数应当是a和b表中符合记录的和。显式:select [cols_list] from a cross join b where [condition]隐式:select [cols_list] from a, b where [condition]内连接(INNER JOIN):有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行,和我们写普通的sql相同。显式:select [cols_list] from a inner join b on [condition] where [condition]隐式:select [cols_list] from a, b where [condition]外连接(OUTER JOIN):外连不但返回符合连接和查询条件的数据行,还返回不符合条件的一些行。外连接分三类:左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN)。三者的共同点是都返回符合连接条件和查询条件(即:内连接)的数据行。不同点如下:左外连接还返回左表中不符合连接条件单符合查询条件的数据行。右外连接还返回右表中不符合连接条件单符合查询条件的数据行。全外连接还返回左表中不符合连接条件单符合查询条件的数据行,并且还返回右表中不符合连接条件单符合查询条件的数据行。全外连接实际是上左外连接和右外连接的数学合集(去掉重复),即“全外=左外 UNION 右外”。说明:左表就是在“(LEFT OUTER JOIN)”关键字左边的表。右表当然就是右边的了。在三种类型的外连接中,OUTER 关键字是可省略的如:select [cols_list] from a left join b on [condition] where [condition]多个表的情况可以用:select [cols_list] from a left join b on [condition] inner join c on [condition] where [condition] 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server