私は次のSELECT
ステートメントに取り組んでいます:
SELECT *
FROM table1
LEFT JOIN table2 ON table2.contentid = table3.id AND table2.tmplid = table1.id
WHERE table2.value = "test"
次のエラーが発生します。
データベースへのクエリの実行に失敗しました-'on句'の不明な列'table3.id'»
私は何が間違っているのですか?
私は次のSELECT
ステートメントに取り組んでいます:
SELECT *
FROM table1
LEFT JOIN table2 ON table2.contentid = table3.id AND table2.tmplid = table1.id
WHERE table2.value = "test"
次のエラーが発生します。
データベースへのクエリの実行に失敗しました-'on句'の不明な列'table3.id'»
私は何が間違っているのですか?
これがあなたの問題です:
LEFT JOIN table2 ON table2.contentid = table3.id
結合の一部ではないテーブル(この場合はtable3)をON句に含めることはできません。
代わりにこれを意味しましたか:
SELECT *
FROM table1
LEFT JOIN table2
ON table1.id = table2.tmplid
LEFT JOIN table3
ON table2.contentid = table3.id
WHERE table2.value = "test"
table3.id
SQLで定義されていないものを参照しています。置くつもりでしたtable1.id
か?
table3を参照する場合は、それに参加する必要があります。
SELECT *
FROM table1
LEFT JOIN table3
ON table1.id = table3.someid
LEFT JOIN table2
ON table2.contentid = table3.id AND table2.tmplid = table1.id
WHERE table2.value = "test"