加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

连接

发布时间:2020-12-12 14:00:48 所属栏目:MsSql教程 来源:网络整理
导读:1?内部连接?([INNER]?JOIN) 2?外部连接?(LFET?/RIGHT?[OUTER]?JOIN) 3?完全连接?(FULL?JOIN) 4?交叉连接?(CORSS?JOIN) ? 5.?UNION与UNION?ALL ? ?*[]为可选项?以下sql语句皆为ANSI标准 ? 1.?内部链接?([INNER]?JOIN) JOIN?默认为内部连接。关键是 排他性 !

1?内部连接?([INNER]?JOIN)

2?外部连接?(LFET?/RIGHT?[OUTER]?JOIN)

3?完全连接?(FULL?JOIN)

4?交叉连接?(CORSS?JOIN)

?

5.?UNION与UNION?ALL

?

?*[]为可选项?以下sql语句皆为ANSI标准

?

1.?内部链接?([INNER]?JOIN)

JOIN?默认为内部连接。关键是排他性

SELECT a.emp_id,b.emp_address,c.address_info
FROM emp_info a JOIN emp_fnd b on a.emp_id=b.emp_id
JOIN address c ON c.address_id=b.address_id

?

2?外部连接?(LFET?/RIGHT?[OUTER]?JOIN)

没有匹配数据的一边为NULL值。

SELECT a.emp_id,c.address_info
FROM emp_info a LEFT JOIN emp_fnd b on a.emp_id=b.emp_id

?

3?完全连接?(FULL?JOIN)

两侧表所有结果

SELECT a.emp_id,c.address_info
FROM emp_info a FULL JOIN emp_fnd b on a.emp_id=b.emp_id

?

4?交叉连接?(CORSS?JOIN)

相当与笛卡尔积,一般结果用作测试数据

SELECT a.emp_id,c.address_info
FROM emp_info a CROSS JOIN emp_fnd b on a.emp_id=b.emp_id

?

5.?UNION与UNION?ALL

联合多表,两者相似,唯一不同点是?UNION联合的结果集默认删除重复行

使用UNION与UNION?ALL需要列数相同,结果集的列名可不同且以第一个表的查询列名为标准。同样语句查询结果的顺序可能不一致,但内容相同的。

SELECT emp_id,emp_name
FROM emp_info
UNION
SELECT mgr_id,mgr_name
FROM mgr_info
UNION
SELECT tmp_id,tmp_name
FROM tmp_info

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读