2015-03-18 28 views
1

我有2桌用户|帖子。与帖子mysql的顶级用户

posts结构是:

[post_id | post_user_id]

users的结构是:

[user_id | user_name | user_password]

现在我想要得到的前5名用户与帖子

编辑1:

 $cod_sql = "select u.user_name, count(*) as 'TotalNumberofPosts' 
from users u 
    join posts p 
    on u.user_id=p.post_user_id 
group by user_name 
order by count(*) desc 
limit 5"; 
     $top10 = mysql_query($cod_sql1) or die (error_sql(mysql_error(),__LINE__,__FILE__)); 

      echo '<div class="head_panel">Members</div> 
        <div class="body_panel"> 
       <table border="1" width="100%"> 
        <tr> 
        </tr> 
        <tr class="tr3"> 
       Top5 : 
        </tr>'; 

    if ($top10 === FALSE) 
    { 
     // An error has occured 
     print "There was an error running the query" . mysql_error(); 
    } else { 
     while ($row = mysql_fetch_assoc($top10)) 
     { 
      print "This is some data from a row<BR />"; 
      print "Name: ($row) <BR />"; 
     } 
    } 

      } 
     break; 
+0

热门职位的前5名用户 – 2015-03-18 22:26:05

+0

您的意思是前5名用户的帖子最多吗? – WorkSmarter 2015-03-18 22:27:05

+0

是的,但我想结果显示他们的用户名 – 2015-03-18 22:31:51

回答

1

以下代码将计算每位用户的帖子总数,并只显示前5张海报。 SQL Fiddle demonstration

select u.user_name, count(*) as 'TotalNumberofPosts' 
from users u 
    join posts p 
    on u.user_id=p.post_user_id 
group by user_name 
order by count(*) desc 
limit 5 
+0

好吧,但如何执行前5的抓取操作? – 2015-03-18 23:27:53

+0

我提供的SQL语句将返回前5个。这由查询“Limit 5”的最后一行表示。现在唯一需要做的是编写支持PHP代码来显示信息。我上面提供的链接给出了一个如何获取信息并显示它的例子。 – WorkSmarter 2015-03-18 23:31:32

+0

我做过了,但结果不算什么,页面是空的 – 2015-03-18 23:33:32

1

我想这会做。我现在不能验证剧本,所以告诉我它是否可行。

select * 
from users 
where exists (
    select * from posts 
    where users.user_id=posts.post_user_id) 
order by users.user_id 
limit 5 
+0

和为什么投票? – 2015-03-18 22:20:47

+0

去试试 – 2015-03-18 22:31:34

+0

没有工作去这个错误资源ID#11 – 2015-03-18 22:40:09