1

私は3つのテーブルを持っています。それぞれに 3 つの列があります。次のようになります。

表1 表2 表3
-------------------- -------------------- ---------- ----------
col1 col2 colA col1 col2 colB col1 col2 colC
1 A データ 3 C データ 5 E データ
2 B データ 2 B データ 6 F データ
3Cデータ 1Aデータ 3Cデータ
4Dデータ 4Dデータ 2Bデータ
5 E データ 6 F データ 1 A データ
6 F データ 5 E データ 3 C データ

私の質問は、JOINSで次のようなものを出力できるかどうかです:

出力テーブル                
----------------------------------------------
col1 col2 colA colB colC
1 A データ データ データ
2 B データ データ データ
3 C データ データ データ
4 D データ データ データ
5 E データ データ データ
6 F データ データ データ

Col1 と Col2 は常に異なる列に同じ値を持ちますが、順序が異なることに注意してください。

これが可能かどうかさえわかりませんが、理想的には、クエリが 3 つのテーブルを結合し、col1 と col2 の情報をそれぞれのテーブルに関連付け、2 つの結合テーブルを並べ替えて、単一のテーブル/配列を出力します。

これが本当にばかげているのか複雑なのか教えてください...私はこれに頭を悩ませようとしてきましたが、mySqlの知識は非常に限られています。

4

3 に答える 3

1
SELECT *
FROM t1
LEFT JOIN t2 USING (col1, col2)
LEFT JOIN t3 USING (col1, col2)
于 2012-07-10T19:39:48.543 に答える
0

もちろん可能です。テーブル全体で同じデータがある限り、テーブルをリンクしてデータを一緒に表示できます。

例えば:

SELECT table1.*, colB, colC FROM table1, table2, table3
WHERE table1.col1 = table2.col1 AND table2.col1 = table3.col1
ORDER BY table1.col1 ASC;

あなたの質問のテーブルを出力します。col2データをリンクする必要がなかったため、この例では条件として使用しませんでした。

于 2012-07-10T19:39:49.633 に答える
0

これが単純な二重結合のSQLです。私が誤解したことを明確にする必要がある場合は、調整可能です。

SELECT 
  table1.col1, 
  table1.col2, 
  colA, 
  colB, 
  colC
FROM table1 
JOIN table2 
  ON table1.col1 = table1.col1 
  AND table1.col2 = table2.col2
JOIN table3 
  ON table1.col1 = table3.col1 
  AND table1.col2 = table3.col2
于 2012-07-10T19:40:12.710 に答える