在thinkphp上,两表连接用sql出现问题,望大家帮忙,指点一下,谢谢大家啊
表categories(类别)和topic(主题),一个类别有多个主题,对应关系是1:n;
我要实现的功能是:实现查询,在表单上显示,一个category对应一个最新创建的topic,
例如:
category last topic
computer topic01 (ps:这个按时间顺序排列是最新的)
在thinkphp上,以下是我的查询,我用原生sql,感觉明显是错误的,出现的问题是,一个category没有对应到一个最新的topic_subject(这个是主题的名字)
PHP code
$brand_row=$brand->query("select categories.cat_name,topic_subject
from categories,topic
where topic_subject
IN(
SELECT topic_subject
FROM
topic
ORDER BY
topic_date
DESC
LIMIT 1)
GROUP BY
categories.cat_name");
------解决方案--------------------
select * from categories a1 left join (
select * from topic a where not exists(select 1 from topic where a.topic_subject=topic_subject
and a.topic_date<topic_date)) b1
on a1.topic_subject=b1.topic_subject
------解决方案--------------------select * from topic a where not exists(select 1 from topic where a.topic_subject=topic_subject
and a.topic_date<topic_date)
每个category最新的一条topic
------解决方案--------------------
参考下贴中的多种方法
http://blog.csdn.net/acmain_chm/article/details/4126306
[征集]分组取最大N条记录方法征集,及散分....