我有两张这样的桌子:
第一个表名:投票

|   type   |     item_id     |   user_id   |
""""""""""""""""""""""""""""""""""""""""
|   like    |       45       |    james    |
|   like    |       45       |    George   |
|  dislike  |       32       |     Paul    |

第二个表名:项
|    item_id     | item_name |
""""""""""""""""""""""""""""""
|       32       |     USB   |
|       45       |     TV    |
|       57       |     Game  |

我想按顺序显示这些项目,这取决于它们的票数。
像这样的:
 TV    - >   2
 USB   - >   1
 Game  - >   0

我试着这样做:
SELECT items.item_name
FROM items INNER JOIN (
    SELECT item_id,COUNT(item_id) as vote
    FROM votes
    HAVING COUNT(item_id) > 1
    ORDER BY COUNT(item_id) DESC
) AS votes ON votes.item_id= items.item_id
WHERE items.item_id= 'item_id'

但什么都没有。请帮帮我。

最佳答案

SELECT `items`.`item_name`, IFNULL(COUNT(`votes`.`item_id`),0) AS `voting` FROM `votes`
LEFT OUTER JOIN `items` ON `items`.`item_id` = `votes`.`item_id`
GROUP BY `items`.`item_id`
ORDER BY `voting` DESC;

关于php - 以最大数量查找和计数SQL中的重复记录并按顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18623807/

10-12 19:20