欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

sqlserver数据库的左右外连接

程序员文章站 2024-01-06 10:27:16
...

--左向外联; --如果主表左表中的行没有匹配连接表的行,结果中相关联来自连接表的列显示null; select * from members aleft join orders b on a.M_account=b.M_account 查询结果: liuzc518刘志成1972-05-18男湖南株洲3500.0liuzc518NULLNULLNULLNULLNULLNULL

--左向外联;
--如果主表左表中的行没有匹配连接表的行,结果中相关联来自连接表的列显示null;

select * from members a
left join orders b on a.M_account=b.M_account


查询结果:

liuzc518	刘志成	1972-05-18	男	湖南株洲	3500.0	liuzc518	NULL	NULL	NULL	NULL	NULL	NULL	NULL
zhao888	赵爱云	1972-02-12	男	湖南株洲	5500.0	zhao888	zhao888	0240810333	2	2005-06-06 00:00:00.000	1	1	0
wangym	王咏梅	1974-08-06	女	湖南长沙	4000.0	wangym0806	wangym	0910810001	1	2005-08-09 00:00:00.000	1	0	0
jinjin	津津有味	1982-04-14	女	北京市	8200.0	jinjin	jinjin	0910810004	1	2005-08-09 00:00:00.000	1	1	1
jinjin	津津有味	1982-04-14	女	北京市	8200.0	jinjin	jinjin	0910810004	2	2005-06-06 00:00:00.000	1	0	0
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810001	1	2005-08-09 00:00:00.000	0	0	0
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810004	2	2005-08-09 00:00:00.000	1	1	1
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810004	2	2005-06-06 00:00:00.000	1	1	1
zhangzl	张自梁	1975-04-20	男	湖南株洲	4300.0	zhangzl	NULL	NULL	NULL	NULL	NULL	NULL	NULL


--右向外联;(与左联接相反)

select * from members a
right join orders b on a.M_account=b.M_account


查询结果:

NULL	NULL	NULL	NULL	NULL	NULL	NULL	liuzc	0140810324	1	2005-10-09 00:00:00.000	0	0	0
NULL	NULL	NULL	NULL	NULL	NULL	NULL	liuzc	0910810004	2	2005-10-09 00:00:00.000	1	1	0
NULL	NULL	NULL	NULL	NULL	NULL	NULL	liuzc	0910810001	1	2005-10-09 00:00:00.000	1	1	0
wangym	王咏梅	1974-08-06	女	湖南长沙	4000.0	wangym0806	wangym	0910810001	1	2005-08-09 00:00:00.000	1	0	0
jinjin	津津有味	1982-04-14	女	北京市	8200.0	jinjin	jinjin	0910810004	1	2005-08-09 00:00:00.000	1	1	1
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810001	1	2005-08-09 00:00:00.000	0	0	0
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810004	2	2005-08-09 00:00:00.000	1	1	1
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810004	2	2005-06-06 00:00:00.000	1	1	1
jinjin	津津有味	1982-04-14	女	北京市	8200.0	jinjin	jinjin	0910810004	2	2005-06-06 00:00:00.000	1	0	0
zhao888	赵爱云	1972-02-12	男	湖南株洲	5500.0	zhao888	zhao888	0240810333	2	2005-06-06 00:00:00.000	1	1	0


--全外连接;
全外连接是左联接和右连接的结合,返回左表和右表中所有的行;如果行在另一个表中没有匹配,另一个表中的select子语句
的列显示的为null,反之,结果中的整个行包含两个表的数据值

select * from members a
full join orders b on a.M_account=b.M_account


查询结果:

liuzc518	刘志成	1972-05-18	男	湖南株洲	3500.0	liuzc518	NULL	NULL	NULL	NULL	NULL	NULL	NULL
zhao888	赵爱云	1972-02-12	男	湖南株洲	5500.0	zhao888	zhao888	0240810333	2	2005-06-06 00:00:00.000	1	1	0
wangym	王咏梅	1974-08-06	女	湖南长沙	4000.0	wangym0806	wangym	0910810001	1	2005-08-09 00:00:00.000	1	0	0
jinjin	津津有味	1982-04-14	女	北京市	8200.0	jinjin	jinjin	0910810004	1	2005-08-09 00:00:00.000	1	1	1
jinjin	津津有味	1982-04-14	女	北京市	8200.0	jinjin	jinjin	0910810004	2	2005-06-06 00:00:00.000	1	0	0
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810001	1	2005-08-09 00:00:00.000	0	0	0
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810004	2	2005-08-09 00:00:00.000	1	1	1
lfz	刘法治	1976-08-26	男	天津市	4500.0	lfz0826	lfz	0910810004	2	2005-06-06 00:00:00.000	1	1	1
zhangzl	张自梁	1975-04-20	男	湖南株洲	4300.0	zhangzl	NULL	NULL	NULL	NULL	NULL	NULL	NULL
NULL	NULL	NULL	NULL	NULL	NULL	NULL	liuzc	0140810324	1	2005-10-09 00:00:00.000	0	0	0
NULL	NULL	NULL	NULL	NULL	NULL	NULL	liuzc	0910810004	2	2005-10-09 00:00:00.000	1	1	0
NULL	NULL	NULL	NULL	NULL	NULL	NULL	liuzc	0910810001	1	2005-10-09 00:00:00.000	1	1	0