2015-03-18 77 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