2012-03-20 16 views
3

私は10テーブルを持っているとしましょう、各tableNはIDとValueNを持っています。 私は、次の内容を持って一つのテーブルにそれらのすべてを組み合わせたい:2つ以上のMicrosoft Accessテーブルを1つのテーブルに結合する方法はありますか?

ID Value1 Value2 Value3 ... 

IDは一意であるが、各テーブルには、任意の数のレコードを持つことができ、その結果行を指定できます

001 3.1 Null 4.6 ... 

2つのテーブルしかない場合、この簡単なクエリを実行する方法は分かっています。しかし、10個のテーブルのID値を比較する最良の方法はわかりません。

答えて

3

あなたはあなたがすべてのテーブルからすべての可能なデータを取得することを確認するために、このようなクエリを使用することができます

Table1:   Table2:   Table3 
ID Value1  ID Value2  ID Value3 
1 A   1 AAA   1 111 
2 B   2 BBB   2 222 
3 C   5 EEE   3 333 
            4 444 
            5 555 

あなたは3つのテーブル(またはテーブルの任意の数)を持って言う:

SELECT U.ID, 
     Table1.Value1, 
     Table2.Value2, 
     Table3.Value3 
FROM (((SELECT ID FROM Table1 
      UNION 
      SELECT ID FROM Table2 
      UNION 
      SELECT ID FROM Table3) AS U 
     LEFT JOIN Table1 ON U.ID=Table1.ID) 
     LEFT JOIN Table2 ON U.ID=Table2.ID) 
     LEFT JOIN Table3 ON U.ID=Table3.ID; 

結果は次のとおりです。

ID Value1 Value2  Value3 
1  A   AAA  111 
2  B   BBB  222 
3  C     333 
4       444 
5    EEE  555  

基本的には、LEFT JOINのちょうど連続です各テーブルで、すべてのテーブルのすべての可能なIDの和集合で結合されています。

SELECT ID FROM Table1 
UNION 
SELECT ID FROM Table2 
UNION 
SELECT ID FROM Table3 
関連する問題