2

同じレイアウト(同じ列)のテーブルが必要です。1つのIDと他のデータがあります。必要なテーブルでそのIDが利用できない場合、データフィールドをnullに設定する1つのIDのみを返すクエリが必要です。

例:

Table A 
ID - Val1 - Val2
1 - 2 - 2
2 - 3 - 3
4 - 1 - 5

Table B
ID - Val1 - Val2
2 - 3 - 3
3 - 2 - 1
4 - 2 - 3

Result
ID - Val1A - Val2A - Val1B - Val2B
1 - 2 - 2 - NULL - NULL
2 - 3 - 3 - 3 - 3
3 - NULL - NULL - 2 - 1
4 - 1 - 5 - 2 - 3

私はMSSQLServerを使用しています。ありがとう!

4

2 に答える 2

4

合体を使用してnull以外のIDを取得すると、一致しないテーブルでは他の列がnullになります

select coalesce(a.id,b.id) as ID, Val1A , Val2A , Val1B , Val2B
from TableA a
Full outer join tableB b
ON <.....>
于 2012-05-14T19:57:12.503 に答える
3
SELECT COALESCE(a.ID,b.ID) AS ID, 
      a.Val1 AS TableA_Val1, 
      a.Val2 AS TableA_Val2, 
      b.Val1 AS TableB_Val1,
      b.Val2 AS TableB_Val2
FROM TableA a
FULL OUTER JOIN TableB b
ON a.ID = b.ID

ここでテストできます:http ://sqlfiddle.com/#!3/51b8c/3

于 2012-05-14T20:08:32.863 に答える