2016-06-01 11 views
-1

私は次の問題に直面しています。私はそれに取り組む方法がわかりません。私は大まかなアイディアを持っていますが、どのように実行するのか分かりません。ここSQLで3つのテーブルを結合するにはどうすればよいですか?

は、次の形式でを発行

Aが存在している:

Name | Name_Att| Name2 | Name_Att2 
--------+---------+-------+------- 
ryan | red | xyz | green 

同様表Bは、この形式で存在する:

Name | Name_id | 
--------+---------+ 
ryan | 123  | 
xyz  | 129  | 

同様表Cはこの形式で存在します:

Name_Att| C_id | Name_id 
--------+---------+--------- 
red  | 4591 | 123 
green | 4592 | 123 
blue | 4593 | 123 
green | 4594 | 129 
blue | 4595 | 129 

だから私は、次の表を作成しようとしています:

Name_id | C_id |Name_id2 | C_id2 
--------+---------+---------+---------- 
123  | 4591 | 129  | 4594 

は、私はこのことについて行くべき方法はありますか?私はこれを行うコードを書くことを考えていました。私はこれを達成するSQLの方法があると確信しています。しかし私は確信していません。

+0

すべてのテーブルが同じRDBMS内にありますか?どれ? –

+1

*私は次の表を作成しようとしています* ...そして試行錯誤していますがどこに試用版がありますか? SOはコード作成やチュートリアルのサービスではありません。熱心に努力してください。 – Parfait

+1

AからB、AからB、Cから2回参加する必要があるようです。一度Name_IDのために一度NameID2はあなたの二度目の参加以来テーブルのエイリアスを作成します。 – xQbert

答えて

2

は、以下を含むようにしてくださいあなたのソリューションに参加する:

FROM (TableA INNER JOIN TableB ON TableA.Name = TableB.Name) 
INNER JOIN TableC ON (TableA.Name_Att = TableC.Name_Att) AND 
    (TableB.Name_id = TableC.Name_id) 

あなたがName_Id2C_id2を取得するために同じことを行うことができます。テーブル名を正しくエイリアスするようにしてください。

+1

これはAccessでは動作しません。そのJOIN文には括弧が必要です。それを行う最も簡単な方法は、クエリUIを使用してテーブルを結合し、生成してそれをクリーンアップしてコピーします(ただし、FROMセクションから括弧を削除しないでください)。 – SunKnight0

+0

@ SunKnight0が修正されました – JJ32

関連する問題