一致を含む2つのテーブルからすべての行を返すにはどうすればよいですか?たとえば、アカウントIDフィールドが共通のアカウントテーブルと注文テーブルがある場合、両方のテーブルから一致するものと一致しないものを返します。
SQLServer2005を使用しています
ありがとう。
一致を含む2つのテーブルからすべての行を返すにはどうすればよいですか?たとえば、アカウントIDフィールドが共通のアカウントテーブルと注文テーブルがある場合、両方のテーブルから一致するものと一致しないものを返します。
SQLServer2005を使用しています
ありがとう。
私はあなたが必要だと思いますFULL OUTER JOIN
:
SELECT *
FROM Table1 T1
FULL OUTER JOIN Table2 T2 ON T1.AccountId = T2.AccountId
幸運を。
MATCHED and UNMATCHED
両方のテーブルから両方のレコードを取得する場合は、FULL JOIN
(またはFULL OUTER JOIN)を使用します。また、以下のようにを使用して、一致または不一致のレコードを見つけることができますCASE
。SQL-フィドルデモ
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