联合查询的结果有哪几种,分别如何实现

联合查询的结果有哪几种,分别如何实现(写出对应的语句)?
七种结果:
(1)A ∩ B
用内连接来实现
    select 字段列表
    from A表名 inner join B表名
    on A表的关联字段 = B表的关联字段;  #其实A表的关联字段 和 B表的关联字段,本类是应该建外键的字段,只是考虑效率的问题,很多时候没有建外键

    select 字段列表
    from A表名 , B表名
    where A表的关联字段 = B表的关联字段;
(2)A
用左连接来实现
    select 字段列表
    from A表名 left join B表名
    on A表的关联字段 = B表的关联字段; 
(3)A - A ∩ B
用左连接来实现
    select 字段列表
    from A表名 left join B表名
    on A表的关联字段 = B表的关联字段
    where 从表的关联字段 is null;
(4)B
用右连接来实现
    select 字段列表
    from A表名 right join B表名
    on A表的关联字段 = B表的关联字段; 
(5)B - A ∩ B
用右连接来实现
    select 字段列表
    from A表名 right join B表名
    on A表的关联字段 = B表的关联字段
    where 从表的关联字段 is null;    
(6)A ∪ B    
本类应该用外连接,现在用union来实现
    select 字段列表
    from A表名 left join B表名
    on A表的关联字段 = B表的关联字段
    union
    select 字段列表
    from A表名 right join B表名
    on A表的关联字段 = B表的关联字段; 
(7)A ∪ B -      A ∩ B = (A - A ∩ B ) ∪ ( B - A ∩ B)
    select 字段列表
    from A表名 left join B表名
    on A表的关联字段 = B表的关联字段
    where 从表的关联字段 is null
    union 
    select 字段列表
    from A表名 right join B表名
    on A表的关联字段 = B表的关联字段
    where 从表的关联字段 is null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值