Php MySQL中的按速率排序
在my db中有2个表: 产品表:Php MySQL中的按速率排序,php,mysql,rate,Php,Mysql,Rate,在my db中有2个表: 产品表: --------------- id | title --------------- 1 Toyoto 2 Lexux ---------------------------------------- rating_id | rating | id | ip ---------------------------------------- 1 l 1 127.0.0.1 2
---------------
id | title
---------------
1 Toyoto
2 Lexux
----------------------------------------
rating_id | rating | id | ip
----------------------------------------
1 l 1 127.0.0.1
2 d 1 127.0.0.2
3 l 1 192.168.0.1
4 l 2 192.168.0.1
-----------------------------------------
评级表:
---------------
id | title
---------------
1 Toyoto
2 Lexux
----------------------------------------
rating_id | rating | id | ip
----------------------------------------
1 l 1 127.0.0.1
2 d 1 127.0.0.2
3 l 1 192.168.0.1
4 l 2 192.168.0.1
-----------------------------------------
所以丰田章男有2个l
(like)和1个d
(loke)。所以我想按喜欢和不喜欢(喜欢和不喜欢之和)对所有产品进行排序。最后一次输出将是:
Toyouto 3 votes and Lexux 1 vote.
订单:
1. Toyoto
2. Lexux
请看小提琴
如果您还想显示排名编号,可以使用:
SELECT @rank:=@rank+1 as rank, title
FROM (
SELECT
products.title
FROM
products INNER JOIN ratings
ON products.id = ratings.id
GROUP BY
products.id,
products.title
ORDER BY
SUM(ratings.rating='l')-SUM(ratings.rating='d')
) s, (SELECT @rank:=0) r
小提琴是。一瞬间的可能复制品,仅显示产品,这些产品具有比率。如何做,显示未评级(投票)的产品@serikshaikamalov您可以使用左连接而不是内部连接,它将返回所有产品