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

作者:norion时间:2013年11月13日评论次数:0 条

我的需求有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不用加括号也不会出错,真是各种变态的说。

标签:

上一篇: js另类取整比parseInt更容易用

下一篇:用php类实现路由功能

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注