MySQL语法错误

时间:2010-09-10 08:09:44

标签: 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'

2 个答案:

答案 0 :(得分: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 ...

请记住,显式JOIN的优先级高于使用逗号的隐式连接。为避免此错误,我建议您始终使用显式连接:

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

答案 1 :(得分:2)

这不是语法错误,而是结构错误 - “product_tag”表中没有“lang”列。