2017-07-11 8 views
0

muliple prestashopテーブルから別のデータベースにクエリをインポートしたいと思っています。問題は、第3のテーブルが他の2つのテーブルに何の根拠もなく、どうやって一緒に参加できるのか分からないことです。物事を単純化するために他の人との関係がないクエリにテーブルを結合するMySQL

はこのように見ている3台を言うことができます:

Table1 Table2   Table3 
ID  ID | Table1 ID ID 
------ -------------- ------ 
1  11 | 1   12 
2  22 | 1   13 
3  44 | 2   
     55 | 2 
     66 | 3 
     77 | 3 

そして、私はこの結果たいと思います:

firstID | secondID | thirdID 
1  | 11  | 12 
1  | 22  | 12 
1  | 11  | 13 
1  | 22  | 13 
2  | 44  | 12 
2  | 55  | 12 
2  | 44  | 13 
2  | 55  | 13 
3  | 66  | 12 
3  | 77  | 12 
3  | 66  | 13 
3  | 77  | 13 

や単語では、私はにeverery表3 IDを割り当てたいですすべてのTable2 IDとTable1の表1の別名Table1との関係を表示するID

Table1とTable2をクエリすると、通常は次のようになります。

SELECT p.`id` AS `firstID`, pa.`id` AS `secondID` 
FROM `Table1` p 
LEFT JOIN `Table2` pa ON (p.`id` = pa.`id`) 
GROUP BY pa.`id` 
ORDER BY p.`id` 

しかし、私は3番目のテーブルに参加できませんでしたので、希望の結果が得られます。

上記の結果はどのように達成できますか?

+0

が私の解決策を試してみて、それがこのハズレ –

答えて

0

EDIT:OPテーブル構造と一致するように名前が変更されたテーブルID。

SELECT t1.`ID` AS `firstID`, t2.`ID` AS `secondID`, t3.`ID` AS `thirdID` 
FROM `Table1` t1 
LEFT JOIN `Table2` t2 ON (t1.`ID` = t2.`Table1 ID`) 
LEFT JOIN `Table3` t3 ON 1 
ORDER BY t1.`ID`, t3.`ID` 

これは、期待どおりの結果です。

SELECT t1.`ID` AS `firstID`, t2.`ID` AS `secondID`, t3.`ID` AS `thirdID` 
FROM `Table3` t3, `Table1` t1 
LEFT JOIN `Table2` t2 ON (t1.`ID` = t2.`Table1 ID`) 
ORDER BY t1.`ID`, t3.`ID` 
+0

が動作しません動作するかどうか、私に知らせています。投稿されたテーブル構造とデータを注意深く見直してください。 – Rahul

+0

ありがとうございます。完璧に動作します。 –

1

あなたはinner joincross joinを探しています。試してみてください:

Select 
a.ID, b.ID, c.ID 
from 
Table1 a Inner Join 
Table2 b on a.ID = b.Table1_ID 
Cross Join 
Table3 c 

これは、TABLE1をフェッチし、交差結果と結合されますIDおよび表3に基づいて表2。

参加クロスの詳細はhere

+0

私はあなたのソリューションを試してみました。 –

+0

ありがとう!ハッピーラーニング –

関連する問題