1

テーブルのクエリを見つけるのに問題があります

次のように2つのテーブルタブtable1とtable2があります

table1
id (int) auto_increment
table2_id1(int)
table2_id2(int)
table2_id3(int)
table2_id4(int)

表2

id(int) auto
name (varchar)

私が行うことは、table2_id1整数の代わりにtable2.nameの名前を表示するクエリを取得することです。

私が何をするかを例証し、

1....test...test...test...test
2....mos...test...mos...mos

私のテーブルは次のとおりです

表1

1   1   1   1   1   
2   2   1   2   2

表2

1   test
2  mos

私がやろうとしていること、おそらく結果を得るための簡単な方法を理解していただければ幸いですが、私はそれを見つけることができません。私が得ることができるすべての助けをうれしく思います。

4

2 に答える 2

2

エイリアスを使用してtable2に4回結合する必要があります。マイクが指摘しているように、これはあまり良い構造ではないことに注意してください。代わりに、この1対多の関係を処理するために別のテーブルを作成することをお勧めします。表1に列を追加する方法

 SELECT Table1.id, a.name AS name1, b.name AS name2, c.name as name3, d.name AS name4
 FROM Table1
      JOIN Table2 a on Table1.table2_id1 = a.id 
      JOIN Table2 b on Table1.table2_id2 = b.id 
      JOIN Table2 c on Table1.table2_id3 = c.id 
      JOIN Table2 d on Table1.table2_id4 = d.id 
于 2013-01-30T23:21:22.533 に答える
0

これを試して

SELECT id, A.name, B.name 
FROM table1 
  LEFT JOIN table2 AS A ON A.id = table1.table2_id1 
  LEFT JOIN table2 AS B ON B.id = table1.table2_id2;

最初の 2 つだけを含めましたが、残りも同じ方法で追加できます

于 2013-01-30T23:26:45.470 に答える