FULL JOIN 查询取并集

全连接(FULL JOIN)实例

现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。

您可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果集:

LastNameFirstNameOrderNo
AdamsJohn22456
AdamsJohn24562
CarterThomas77895
CarterThomas44678
BushGeorge 
  34764

FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。



MySQL Full Join的实现 因为MySQL不支持FULL JOIN,下面是替代方法
left join + union(可去除重复数据)+ right join

select * from A left join B on A.id = B.id (where 条件)
union
select * from A right join B on A.id = B.id (where条件);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
full join和full outer join都是用来进行全连接查询的。全连接查询是左外连接和右外连接查询结果的并集。区别在于语法的不同和使用场景的不同。 full join的语法为full join ... on ...,它能够查询出左表和右表的所有记录,即使一些记录关联不上也能够把部分信息查询出来。它适用于需要查询两个表的所有记录的场景。 full outer join是一种特殊的全连接查询,它的语法为left_table full outer join right_table on ...。它能够查询出左表和右表的所有记录,并且包括左表和右表中无法关联的记录,即使一些记录关联不上也能够把部分信息查询出来。它适用于需要查询两个表的所有记录,并且包括无法关联的记录的场景。 因此,full outer join是full join的一种特殊情况,它不仅查询出左表和右表的所有记录,还包括无法关联的记录。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [oracle 内连接(inner join)、外连接(outer join)、全连接(full join)](https://blog.csdn.net/weixin_33356544/article/details/116323304)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值