SQL返回匹配项和非匹配项
如何返回两个表中的所有行,包括匹配项?例如,如果我有一个account表和order表,它们都有一个account ID字段,那么我希望返回两个表中的匹配项以及非匹配项 我正在使用SQLServer2005SQL返回匹配项和非匹配项,sql,sql-server-2005,join,Sql,Sql Server 2005,Join,如何返回两个表中的所有行,包括匹配项?例如,如果我有一个account表和order表,它们都有一个account ID字段,那么我希望返回两个表中的匹配项以及非匹配项 我正在使用SQLServer2005 谢谢。我想您需要完全外部连接: SELECT * FROM Table1 T1 FULL OUTER JOIN Table2 T2 ON T1.AccountId = T2.AccountId 祝您好运。如果您想从两个表中同时获得匹配和不匹配的记录,请使用完全联接(或完全外部联接)。您
谢谢。我想您需要
完全外部连接
:
SELECT *
FROM Table1 T1
FULL OUTER JOIN Table2 T2 ON T1.AccountId = T2.AccountId
祝您好运。如果您想从两个表中同时获得
匹配和不匹配的记录,请使用完全联接
(或完全外部联接)。您还可以使用案例
查找匹配或不匹配的记录,如下所示
您能否添加具有所需结果的样本记录?我对你的说法感到困惑:我想返回两个表中的匹配项以及非匹配项谢谢你的回复,但SGEDES代码正是我要找的。嗨,谢谢,太好了。
select isnull(a.accountId,o.accountId) accId, AccName,ProName,
case when AccName+ProName is null then 'No'
else 'Yes' end as IsMatched
from Accs a FULL JOIN Orders o on a.accountId = o.accountId
order by IsMatched
--Example results
AccId AccName ProName IsMatched
1 X (null) No
10 (null) Apple No
2 Y Orange Yes
3 Z Mango Yes