2012-01-28 5 views
0

複数のテーブルを選択してこれらのテーブルの1つを内部結合することはできますか?例えばMysqlでは複数のテーブルを選択できますが、1つのテーブルで内部結合を行います

SELECT * 
FROM table1 AS t1, table2 AS t2, table3 AS t3 
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3 
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4 
WHERE ... 

このような場合は、私に問題を引き起こしています。それは私にエラーを与える - 不明な列 "t1.row3" on節。私は、複数のテーブルを選択することは可能かどうかわからないが、それらのテーブルの1つに対して内部結合を行う。

+0

これらは実際の表名と列名ですか? – klennepette

+0

いいえ、これらは実際のテーブルとカラム名ではありませんが、それは似ています。私は3つのテーブルを選択する必要がある、私は内部結合を行う必要がある1つのテーブルで、他の2つのテーブルだけで簡単に選択します。 – woopata

答えて

5

JOINオペランドがコンマ,オペランドよりも優先順位が高いので、ザを効果T1、T2、T3の周り

t1, t2, (t3, t4, t5 ON ...) 

プット括弧として扱われるジョイン。

SELECT * 
FROM (table1 AS t1, table2 AS t2, table3 AS t3) 
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3 
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4 
WHERE ... 

あなたはまた、あなたのクエリを書くことができます:カンマが結合条件なしに、JOIN INNERと同等であるため、

SELECT * 
FROM table1 AS t1 
INNER JOIN table2 AS t2 
INNER JOIN table3 AS t3 
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3 
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4 
WHERE ... 

+0

ありがとう、それは働いています:) – woopata

+0

実際に私は今私は同じ結果を複数の回... row1、row1、row1、row2、row2、row2 .... – woopata

関連する問題