做网站常用的技术有哪些,搜狗站长管理平台,公司增加英文网站要怎么做,电商运营怎么自学T-SQL的联接分三种类型#xff1a; 交叉联接 ( cross join ) 内部联接 (inner join) 外部联接 (outer join) 每种联接在逻辑上经历不同的阶段#xff0c;分为笛卡尔乘积、筛选、添加外部行#xff0c;如图#xff1a; 联接类型 阶段 交叉联接 笛卡儿乘积 内部联接…T-SQL的联接分三种类型 交叉联接 ( cross join ) 内部联接 (inner join) 外部联接 (outer join) 每种联接在逻辑上经历不同的阶段分为笛卡尔乘积、筛选、添加外部行如图 联接类型 阶段 交叉联接 笛卡儿乘积 内部联接 笛卡尔乘积、筛选 外部联接 笛卡儿乘积、筛选、添加外部行 接下来将以例子逐个讲解三种联接假设有一张表a, 如下: id -- 1 2 3 4 和一张表b ,如下: id -- 3 4 5 6 1、交叉联接是最简单的联接它只进行笛卡儿乘积。如果表a有x条记录,表b有y条记录cross join 之后会生成 x*y条记录。 select a.id as aId,b.id as bId from a cross join b aId bId --- --- 1 3 2 3 3 3 4 3 1 4 2 4 3 4 4 4 1 5 2 5 3 5 4 5 1 6 2 6 3 6 4 6 2、内联接进行了笛卡儿乘积和筛选两个阶段。在写法上inner join 的 inner是可选的并且在on 后面指定筛选的条件条件可以相等也可以不相等。 select a.id as aId, b.id as bId from a inner join b on a.idb.id aId bId--- ---3 3 4 4 select a.id as aId,b.id as bId from a join b on a.idb.id aId bId --- --- 4 3 如上结果on指定的条件把不符合的记录给过滤掉了。 3、外部联接是指左外联接(left outer join)、右外联接(right outer join)、全外联接(full outer join)。写法上outer 是可选的。 外联接进行了笛卡尔乘积、筛选、和添加外部行三个阶段。相对于内联接外联接多了一个添加外部行的阶段也就是说在进行完筛选后把该保留的记录添加回输出表中。 1) 所谓左外联接就是保留左侧表的所有记录如有不匹配列的记录则用null 填充。 select a.id as aId,b.id as bId from a left outer join b on a.idb.id aId bId --- ------ 1 (null) 2 (null) 3 3 4 4 2) 右外联接就是保留右侧表的所有记录如有不匹配列的记录则用null 填充。 select a.id as aId,b.id as bId from a right join b on a.idb.id aId bId ------ --- 3 3 4 4 (null) 5 (null) 6 3) 全外联接就是保留两侧表的所有记录如有不匹配列的记录则用null 填充。 select a.id as aId,b.id as bId from a full join b on a.idb.id aId bId ------ ------ 1 (null) 2 (null) 3 3 4 4 (null) 5 (null) 6 注以上例子讲的都是两张表的联接。如是多表联接则从左侧开始每个联接所生成的输出表是下一个联接的左侧表。 转载于:https://www.cnblogs.com/victorguan/p/6480050.html