mysql即关联又左联出现Unknown column 'p.post_id' in 'on clause'解决办法

作者:沙师弟时间:2013-11-13
我的需求有3张表,其中一张的数据可能不存在,存在就显示这张表的数据,如果没有就不显示,请教了同事之后才知道有左联、右联这种东西,sql基础不扎实啊,我的sql是这样的:
SELECT
	p.post_id id,
	p.title title,
	p.description description,
	p.content content,
	p.updataTime time,
	u. NAME author,
	m.meta_key,
	m.meta_value
FROM
	z_post p,
	z_user u
LEFT JOIN 
	z_postMeta m 
ON  p.post_id = m.post_id
WHERE
    p.post_id = 1
AND p.type = 1
AND p.author = u.id;
结果报Unknown column 'p.post_id' in 'on clause',这种sql语法是正确的,但是mysql下有这样一个BUG,要把联合的表用括号包含起来才行。
SELECT
	p.post_id id,
	p.title title,
	p.description description,
	p.content content,
	p.updataTime time,
	u. NAME author,
	m.meta_key,
	m.meta_value
FROM
	(z_post p,
	z_user u)
LEFT JOIN 
	z_postMeta m 
ON  p.post_id = m.post_id
WHERE
    p.post_id = 1
AND p.type = 1
AND p.author = u.id;
这样加个括号就不会出错了,听同事说Oracle不用加括号也不会出错,真是各种变态的说。