2010-10-21 99 views
-1

这里是我的表MySQL的PHP​​论坛列表

主题 -id -title -category_id

帖子 -id -topic_id -user_id -date - 时间 -txt

用户 -id -username

我希望列出一个类别以下信息每个主题 作者的用户名(谁发布第一),大量的答复,最后回复的作者的名字,和上一篇文章的日期按帖子发布日期排序。

我可以做一些嵌套循环和一堆查询,但我想知道是否有可能提供一个或两个mysql查询?

的代码,我SOFAR ...

$query = "SELECT * FROM user u,topics t,posts p WHERE t.category_id=1 AND t.id=p.topic_id AND p.user_id=u.id ORDER BY p.date DESC, p.time DESC"; 

回答

0
$sql = "SELECT * FROM user u,topics t,posts p WHERE t.category_id=1 AND t.id=p.topic_id AND p.user_id=u.id ORDER BY p.date DESC, p.time DESC"; 
$query = mysql_query($sql); 
while ($result = mysql_fetch_array($query)) { 
    // do some stuff with $result 
} 

(改变变量,使一些更有意义)

0

只需添加first_topic_idlast_topic_id列于表topics。这是常见的做法,它会帮助您获得简单而快速的查询。