私はMySQL
.....の初心者です。1つはsome_id、name、count、descrを含み、2つ目はid、some_id、uni_idを含み、最後の1つはuni_id、price、addedなどをleft join
含む3つのテーブルを試しています。これらの3つのテーブルを結合するには、そのようなフィールドはないということです。descr
それらの構造を変更せずにこれらのテーブルを結合するための最良の方法は何でしょうか?
次のスキーマを想定しています。
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)
テーブルのスキーマを投稿できれば理想的です。クエリが表示されない場合は、間違ったテーブルにエイリアスされた可能性のあるフィールドへの参照を作成したようです。
最も基本的なレベルでは、「descr」は参照しようとしては存在しませんが、それを超えると、クエリ自体を見ずに言うのは困難です。
SELECT descr
FROM table1
LEFT JOIN table2 ON table2.some_id = table1.some_id
LEFT JOIN table3 ON table3.uni_id = table2.uni_id
トリックを行う必要があります。