-1

私は次のSELECTステートメントに取り組んでいます:

SELECT *
FROM table1
LEFT JOIN table2 ON table2.contentid = table3.id AND table2.tmplid = table1.id
WHERE table2.value = "test"

次のエラーが発生します。

データベースへのクエリの実行に失敗しました-'on句'の不明な列'table3.id'»

私は何が間違っているのですか?

4

2 に答える 2

1

これがあなたの問題です:

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"
于 2012-08-20T16:50:26.260 に答える
0

table3.idSQLで定義されていないものを参照しています。置くつもりでした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"
于 2012-08-20T16:49:47.853 に答える