SQLを使用してExcelにカスタムODBCクエリを作成しています。テーブルの列が定義されているときにSQL結合が機能しなくなる
私は2つのテーブル 'TBL_CONTACT'と 'TBL_ADDRESS'を 'contactid'にINNER JOINとしています。これは両方に存在するカラムです。
すべての列を選択するとうまく動作しますが、表示する列の定義を開始すると機能しなくなります。
の作業コード:
SELECT * FROM "TBL_CONTACT" AS CONTACT
INNER JOIN (SELECT * FROM "TBL_ADDRESS" AS ADDRESS) ADDRESS
ON CONTACT.contactid = ADDRESS.contactid
非作業コード:
SELECT CONTACT.contactid, CONTACT.fullname FROM "TBL_CONTACT" AS CONTACT
INNER JOIN (SELECT * FROM "TBL_ADDRESS" AS ADDRESS) ADDRESS
ON CONTACT.contactid = ADDRESS.contactid
これが唯一の 'TBL_CONTACT' から 'contactid' と 'フルネーム' の列を示してから何かに参加していません " TBL_ADDRESS '。
例:
TBL_CONTACT
contactid firstname fullname
1001 John John Smith
1002 Tom Tom Adams
TBL_ADDRESS
contactid line1 line2 postcode
1001 3 Farm Ln Essex AB1 1BA
1002 1 Tim st Kent CN2 2NC
望ましい結果:
contactid fullname contactid2 line1 line2 postcode
1001 John Smith 1001 3 Farm Ln Essex AB1 1BA
1002 Tom Adams 1002 1 Tim st Kent CN2 2NC
第一のコードは、その結果を以下与える:
contactid fullname
1001 John Smith
1002 Tom Adams
:
contactid firstname fullname contactid2 line1 line2 postcode
1001 John John Smith 1001 3 Farm Ln Essex AB1 1BA
1002 Tom Tom Adams 1002 1 Tim st Kent CN2 2NC
第二のコードは次のような結果になります
私はかなり新しいSQLですが、ここで何が間違っているのか分かりません。どんな助けでも大歓迎です!
編集あなたの質問をし、サンプルデータと望ましい結果を提供します。
はそうちょうどあなたが望むすべてのフィールドクエリで、そしてもちろん
SELECT
のテーブルプレフィックスを使用しています。あなたの説明は、特に両方のクエリが機能するため、問題を伝える良い仕事をしません。 –'SELECT文のフィールド名の前にテーブル名を書く:' SELECT TBL_CONTACT.contactid、TBL_CONTACT.fullname、TBL_ADDRESS.contactid、TBL_ADDRESS.fullname' –
カラムにエイリアス名を指定する –