2016-11-28 13 views
0

私は、すべてのレコードが表示されるようにTable 1のヌルエントリをプライマリテーブルにすることができるように、3つのテーブルを一緒にマイクロソフトのアクセスに参加しようとしています。複数の左結合にアクセスする - SQLコード

私は2つのテーブルのみをリンクするこのコードを持っています。

SELECT [1].IDCode, [2].GiftDate, [2].FundId__1, [2].fund_name 
FROM 1 LEFT JOIN 2 ON [1].IDCode = [2].IDCode 
WHERE ((([1].IDCode) Is Not Null)); 

しかし、私は3番目を追加したいと思います。私はこれを持っていますが、実行しようとするたびにエラーが発生します(無効な操作)。

SELECT [1].IDCode, [2].GiftDate, [2].FundId__1, [2].fund_name, [3].Rep_Type 
FROM (1 LEFT JOIN 2 ON [1].IDCode = [2].IDCode) LEFT JOIN 3 ON [1].IDCode = [3].IDCode 
WHERE ((([1].IDCode) Is Not Null)); 

私のコードは今では無効な操作を受けています。

SELECT [A].IDCode, [A].GiftDate, [A].FundId__1, [A].fund_name, [3].Rep_Type 
FROM 
(SELECT [1].IDCode, [2].GiftDate, [2].FundId__1, [2].fund_name 
FROM 1 
LEFT JOIN 2 
ON [1].IDCode = [2].IDCode) A 
LEFT JOIN 3 
ON [A].IDCode = [3].IDCode 
WHERE ((([1].IDCode) Is Not Null)); 
+0

この質問への答え:http://stackoverflow.com/questions/19367565/access-sql-inner-join-with-multiple-tablesあなたは –

+0

は3代が常に2Sに存在しています助けて?もしそうなら2に参加してください。もしnot()の注文が重要で、これをもっと難しいものにしてください。 – xQbert

+0

3は必ずしも2に存在するとは限りません。 – blink444

答えて

0

1場合は - > 2 - バック1に本当に参加する場合の参加について> 3第3は、しかし2.idcode = 3.idcode

SELECT [1].IDCode, [2].GiftDate, [2].FundId__1, [2].fund_name, [3].Rep_Type 
FROM (1 LEFT JOIN 2 ON [1].IDCode = [2].IDCode) LEFT JOIN 3 ON [2].IDCode = [3].IDCode 
WHERE ((([1].IDCode) Is Not Null)); 

する必要があります...

アクセス()さんと2

に戻って加入だから私は(と迷子にしないでください)「好き嫌いですので、私はちょうど参加し管理するためのインライン・ビューを作成したの。

SELECT [A].IDCode, [A].GiftDate, [A].FundId__1, [A].fund_name, [3].Rep_Type 
FROM 
(SELECT [1].IDCode, [2].GiftDate, [2].FundId__1, [2].fund_name 
FROM 1 
LEFT JOIN 2 
    ON [1].IDCode = [2].IDCode) A 
LEFT JOIN 3 
    ON [A].IDCode = [3].IDCode 
WHERE [A].IDCode Is Not Null; 
+0

1-> 2 and 1-> 3 私は1/2の代わりにAの下位のコードを試しましたが、私はまだ無効な操作を取得しています。 – blink444

+0

FundID_1に2つまたは1つのアンダースコアが必要ですか?あなたは2が奇妙であるように見えます。別の方法としては、Aをビューとして作成し、おそらく何らかの理由でアクセスからインラインビューが嫌いなビューから選択することです。 – xQbert

関連する問題