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