MYSQL按其他表

时间:2015-11-13 09:16:57

标签: php mysql database

我正在使用PHP和MYSQL开发基本的社交网络。我试图在表格中显示4个最受欢迎的帖子。

我有两个表,表1是'discussions',表2是'comments'。 表格'discussions'有一列“id”,与表'discid'中的列'comments'相匹配。因此,只要用户对讨论发表评论,就会在表“评论”中添加一行,其中'discid'是讨论的ID。我可以展示最新的评论和讨论,但我不能让它展示最热门的讨论,所以讨论的评论最多。

因此,我需要找到一种方法,根据表格'discid'的{​​{1}}列中某个讨论ID的出现次数对表格讨论进行排序。

例如:

'comments'

所以我需要我的sql查询显示第一个id 7然后id 2,...

任何可以帮助我的人?非常感谢!

3 个答案:

答案 0 :(得分:2)

让我知道它是否有效或..

SELECT d.*
FROM discussions AS d
JOIN ( SELECT c.*, COUNT(c.discid) AS cnt
       FROM comments AS c
       GROUP BY c.discid
     ) AS c2 ON ( c2.discid = d.id )
ORDER BY c2.cnt DESC;

答案 1 :(得分:0)

<!--[if !IE7]><![IGNORE[--><![IGNORE[]]><link rel=stylesheet href="path/to/bootstrap.css" type="text/css" media="screen"><!--<![endif]-->

希望这有帮助。

答案 2 :(得分:0)

我会尝试像

这样的东西
SELECT discid,COUNT(*) AS cnt FROM comments GROUP BY discid ORDER BY cnt DESC LIMIT 5;

这将显示一个discid-s列表和被称为“cnt&#39;”的评论计数,按顺序递减它们。