2010-09-10 131 views
1

这段代码有什么问题?MySQL语法错误

FROM product_tag, ps_product_tags_all 
LEFT JOIN users ON 
users.id = product_tag.lang 
LEFT JOIN images ON 
images.id = ps_product_tags_all.lang 

错误:

Unknown column 'product_tag.lang' in 'on clause' 
+0

确实郎实际存在于product_tag表;-) – simnom 2010-09-10 08:12:25

+0

请张贴表结构和整个查询即可。 – 2010-09-10 08:13:35

回答

2

这不是语法错误,但错误的结构 - 你不必在 “product_tag” 表 “郎” 一栏。

+1

这可能不是查询失败的原因。 – 2010-09-10 11:42:40

4

您正在混合隐式和显式连接并按错误顺序连接。试试这个:

SELECT * 
FROM ps_product_tags_all 
LEFT JOIN images ON 
images.id = ps_product_tags_all.lang, product_tag 
LEFT JOIN users ON 
users.id = product_tag.lang 
WHERE ... 

请记住,显式连接比使用逗号的隐式连接具有更高的优先级。为了避免这种错误,我建议你总是使用明确连接:

SELECT * 
FROM ps_product_tags_all 
LEFT JOIN images ON images.id = ps_product_tags_all.lang 
LEFT JOIN product_tag ON ... 
LEFT JOIN users ON users.id = product_tag.lang 
+0

有用的信息,我一直没有这个信息,从来没有这样的问题。 ] – 2010-09-10 08:18:00