0

こんにちは私は次のようなMysqlテーブルを持っています、

post_id  | user_id  |   status | date_created
  2          2         funny     20121022120627
  2          3         lame      20121023120627
  3          1         useful    20121023120627
  3          3         lame      20121023120627
  3          4         useful    20121023120627

今、ステータスカウントに基づいて人気のある投稿のpost_idを取得するためのクエリが必要です。その日のステータスが多い投稿を意味しますpost_id = 3。3つのステータスが投票されているので例が人気になるので、投稿テーブルでこの投稿の所有者を見つけることができます。ありがとう!

4

2 に答える 2

3

これを試してみてください

SELECT post_id
FROM tableName
GROUP BY post_ID
HAVING COUNT(*) = 
(
    SELECT MAX(x.counts)
    FROM
    (
        SELECT post_id, COUNT(*) counts
        FROM tableName
        GROUP BY post_id
    ) x
)

SQLFiddleデモ

Post_ID基本的に、特定の投票数が同じである可能性があるため、ここで制限を使用することはお勧めしません。

于 2012-10-23T04:31:55.720 に答える
0
select t1.post_id,max(t1.countstatus) 
from 
(select post_id,count(*) as countstatus 
  from table_name
   where status='useful' group by post_id)as t1 
 group by t1.id ;

これを試してみてください私は人気投票がstatus='useful'を意味すると仮定しています

于 2012-10-23T04:42:21.787 に答える