2016-11-08 6 views
0

件数に応じてランクを取得することに問題があります。 images_likeはエントリがない場合 mysqlの数に応じてランクを取得する方法

1)images 
2)images_like 

は今、それはランクで「NULL」を示している:

は、私は2つのテーブルを持っています。クエリおよび出力を確認してください。

SELECT im.id, 
    rank 
FROM (SELECT image_id, 
       @rownum := @rownum + 1 AS rank, 
       Count(*)    AS cnt 
     FROM images_like, 
       (SELECT @rownum := 0) r 
     GROUP BY image_id 
     ORDER BY `cnt` DESC) AS d 
     RIGHT JOIN images AS im 
       ON d.image_id = im.id 

enter image description here

私は3ないヌルを表示する必要が....事前に

感謝を!!!!!

+0

はhttp://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-meを参照してください。非常にシンプルなSQLクエリです。ちなみに、右のジョインは非常にまれであることに注意してください。 – Strawberry

+0

テーブルのサンプルデータを親切に提供 – Viki888

答えて

0

このようにしてみてください。

SELECT im.id, d.rank 
FROM 
(    
    SELECT t.image_id, @rownum := @rownum + 1 AS rank 
    FROM 
     (    
      SELECT image_id, 
       Count(*) AS cnt 
      FROM images_like 
      GROUP BY image_id 
      ORDER BY `cnt` DESC) AS d  
     ) t, 
    (SELECT @rownum := 0) r   
) d  
RIGHT JOIN images AS im ON d.image_id = im.id 
+0

ありがとうございますが、動作していません! –

関連する問題