2017-11-22 7 views
-2

その日に最も見られたレコードを一覧表示しようとしていますので、その日のすべてのレコードを(繰り返し)保持するテーブルがあります。その日に一番多く見られたレコードを一覧表示する方法

私はそれをリストアップする必要がありますが、これを行うロジックがありません。

私はそれを行う試してみました:

<?php 
    $stmt1 = $mysqli->prepare("SELECT token, data, category FROM news_system WHERE id=(SELECT new_id, SUM(clicks) FROM activity_system WHERE date='2017-11-22' GROUP by new_id)"); 
    $stmt1->execute(); 
    $stmt1->store_result(); 
    if($stmt1->num_rows >= 1) { 
     $stmt1->bind_result($token, $data, $category); 
     while($stmt1->fetch()) { 
      echo " 
       token is: {$token} <br /> 
       data is: {$data} <br /> 
       category: {$category} <br /> <br /> 
      ";  
     } 
    } 
?> 

しかし、あなたは私はあなたに感謝私を助けることができれば、それは、働いていません。

+1

ここで十分なコードはありません。実行した場合と同じように、ループしてエコーします。あなたは "働かない"と定義しなくてはなりません。 –

+0

*「お手伝いできればうまくいきません」* - うん、やってみた。 * "Soup's on" * –

+0

@ Fred-ii-私は投稿を編集します。あなたが正しく理解しているかどうかわかりません。今日最も見られた(CLICKS列)のレコードをリストアップする必要があります(2017-11-22) –

答えて

2

あなたのactivity_systemにnews_systemにリンクする列があるとします(私のクエリでは、それはnews_tokenと推測されています)、ニュース項目あたりのクリック数を得るために簡単な結合を行うことができます。次にトークンでグループ化し、クリック数の合計で並べ替えればいいですね。

select 
    n.token, n.data, n.category, sum(a.clicks) 
from 
    news_system n 
    join activity_system a 
     on (n.token = a.news_token) 
group by 
    n.token, n.data, n.category 
order by 
    sum(a.clicks) desc 
関連する問題