0

私はMySQL.....の初心者です。1つはsome_id、name、count、descrを含み、2つ目はid、some_id、uni_idを含み、最後の1つはuni_id、price、addedなどをleft join含む3つのテーブルを試しています。これらの3つのテーブルを結合するには、そのようなフィールドはないということです。descr

それらの構造を変更せずにこれらのテーブルを結合するための最良の方法は何でしょうか?

4

3 に答える 3

1

次のスキーマを想定しています。

  • table1(some_id, name, count, descr)、ここsome_idで主キーです。
  • table2(id, some_id, uni_id)、ここで、は;some_idへの外部キーです。table1
  • table3(uni_id, price, added)、ここで、uni_idはへの外部キーtable2です。

あなたがする必要があるLEFT OUTER JOINのは3つのテーブルの間です:

SELECT *
FROM table1 t1 LEFT JOIN table2 t2 ON (t1.some_id = t2.some_id)
  LEFT JOIN table3 ON (t2.uni_id = t3.uni_id)

参照:

于 2012-09-25T13:34:45.480 に答える
0

テーブルのスキーマを投稿できれば理想的です。クエリが表示されない場合は、間違ったテーブルにエイリアスされた可能性のあるフィールドへの参照を作成したようです。

最も基本的なレベルでは、「descr」は参照しようとしては存在しませんが、それを超えると、クエリ自体を見ずに言うのは困難です。

于 2012-09-25T13:35:10.240 に答える
0
SELECT descr
FROM table1
LEFT JOIN table2 ON table2.some_id = table1.some_id
LEFT JOIN table3 ON table3.uni_id = table2.uni_id

トリックを行う必要があります。

于 2012-09-25T13:36:42.330 に答える