2017-05-19 20 views
0

私は3つのテーブルのデータをマージするMySQLクエリを実行しようとしています。残念ながら、データを整理するために使用されるIDは2つのテーブルで異なりますが、3つ目のテーブルでは関連しています。最初の表は、この方法の設定です:2つの異なるIDを持つSQL SELECT 3テーブル

+---------------------------------------+ 
| ID | Meta_Key | Meta_Value   | 
+---------------------------------------+ 
| 1 | name  | John Doe    |      
+---------------------------------------+ 

第二表は、この方法の設定です:

+---------------------------------------+ 
| ID | Order_Type  | Order_ID  | 
+---------------------------------------+ 
| 1 | order_type1  | 101   | 
+---------------------------------------+ 

と3番目の表は、この方法でセットアップです:

+---------------------------------------+ 
| Order_ID | Order_Key | Order_Value | 
+---------------------------------------+ 
| 101  | order_total| 1000   | 
+---------------------------------------+ 

私が探していますSELECTクエリを使用してこれらの3つのテーブルをマージする方法については、次のようにIDでグループ化してください。

+-----------------------------------------------------------+ 
| ID | Order_ID | Meta_Value | Order_Type | Order_Value | 
+-----------------------------------------------------------+ 
| 1 | 101  | John Doe | order_type1 | 1000  | 
+-----------------------------------------------------------+ 
+1

を作るために、クエリの上使用してくださいあなたは 'JOIN'をしたいように思えます! (二重のものです) – jarlh

+0

私はそのようなSQLのnoobですが、3つのテーブルを結合し、2つのIDに基づいてデータを編成することは可能ですか? – gffwebdev

+0

それを関連付けることができるかどうかはわかりません。 2番目のテーブルに1番目と3番目の両方のIDが含まれている可能性があります。 – gffwebdev

答えて

0

行います参加するように思える:

select t1.id, 
    t2.order_id, 
    t1.meta_value, 
    t2.order_type, 
    t3.order_value 
from table1 t1 
join table2 t2 on t1.id = t2.id 
join table3 t2 on t2.order_id = t3.order_id 
where t1.meta_key = 'name'; 
0

あなたが複数の基準に複数のテーブルを結合することができます。

select 
[desired fields] 
from tbl_1 
    inner join tbl_2 on tbl_1.ID = tbl_2.ID 
    inner join tbl_3 on tbl_2.Order_ID = tbl_3.Order_ID 
0

あなたはすべての3つのテーブルを結合し、必要なフィールドを選択することができます。

SELECT 
FirstTable.ID, 
SecondTable.Order_ID, 
FirstTable.Meta_Value, 
SecondTable.Order_Type, 
ThirdTable.Order_Value 
FROM FirstTable 
JOIN SecondTable ON FirstTable.ID = SecondTable.ID 
JOIN ThirdTable ON SecondTable.Order_ID = ThirdTable.Order_ID 
+0

**レビューキューから**:ソースコードの前後にコンテキストを追加してください。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

0
select T1.ID, T2.Order_ID, T1.Meta_Value, T2.Order_Type, T3.Order_Value 
FROM Table_1 T1 
LEFT JOIN Table_2 T2 ON T1.ID = T2.ID 
LEFT JOIN Table_3 T3 ON T2.Order_ID= T3.Order_ID 

ビューに

+0

ビューを利用する理由が不思議です。 – psrpsrpsr