联合、自连接

联合连接是基于自连接基础上,由于null的原因少了默些行,联合连接再硬添加上。

--联合连接和自连接 联合连接 硬生生的插了一行    《纵向连接 -》没啥用》    其余的都是行向连接
--输出每个员工的信命/工资和上司的姓名
select  E1.ename ,E1.sal ,E2.ename   from emp "E1" join emp "E2" on E1.mgr=E2.empno   --eroor 13行 自连接少了null一行  自己连接的


 select  E1.ename ,E1.sal ,E2.ename "shang si"   from emp "E1" join emp "E2" on E1.mgr=E2.empno 
union 
select ename ,sal , '插入' from emp  where mgr is null

select  ename ,sal ,mgr   from emp --错 查的是上司的学号 不是名字


简单的举个例子分析上面的问题:

下面两个关系模式R:如果要输出每个员工的信命/工资和上司的名字:首先想到自连接

    表 1                                      表  2

empno  mgr                  empno  mgr                                     
1              2                          1          2
2              3                           2           3

3              null                       3           null


也就是1表中的mgr和2表中的empno学号相等来建立自连接。E1.mgr=E2.empno 

表一:1   2  对应    表二:2    3

表一:2   3  对应    表二:3    null

表一:3   null     不可与表2连接

那么联合的主要目的就是为了解决表一:3   null     不可与表2连接,所以联合的自连接有13行有联合的自连接有14行

E2.ename   from emp "E1" join emp "E2" on E1.mgr=E2.empno    E2.ename 相当于把boss的名字输出了














基于 sqlsever


-







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值