我正在处理以下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
您的 ON 子句中不能有任何不属于联接的表(在本例中为 table3)。
你是不是这个意思:
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"