首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

在thinkphp上,两表连接用sql出现有关问题,望大家帮忙,指点一下,多谢大家

2012-06-28 
在thinkphp上,两表连接用sql出现问题,望大家帮忙,指点一下,谢谢大家啊表categories(类别)和topic(主题),一

在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条记录方法征集,及散分....

热点排行