在改版公司一个旧版本的时候,直接就拿了原来版本的sql语句过来用,却提示mysql错误"unknown column on in clause : column, unknown, 1054",可是明明旧网站运行好好的啊,估计是mysql版本的问题,在mysql上有人报告了“"unknown column ... in 'on clause'" in LEFT JOIN #1054”的bug,在网络上搜寻终于找到了答案
出现错误的语句为
$sql_select_show_result = "
select p.id as id
from new_post p, user u, new_user nu
LEFT JOIN new_post_hidden nph on (p.id = nph.id)
where nph.id is NULL and p.tid = ".$tid." and p.id != '$main_subject' limit $offset, $limit";
MYSQL上的bug报告为
http://bugs.mysql.com/bug.php?id=30460
在下面这里找到了解决“unknown column ... in 'on clause'" in LEFT JOIN #1054”的答案
http://www.oscmax.com/forums/oscmax-v2-customization-mods/6535-1054-unknown-column-authors_id-clause.html
解决办法就是将left join前面的两个表括起来
$sql_select_show_result = "
select p.id as id
from (new_post p, user u, new_user nu)
LEFT JOIN new_post_hidden nph on (p.id = nph.id)
where nph.id is NULL and p.tid = ".$tid." and p.id != '$main_subject' limit $offset, $limit";