我就是您所说的 MySQL 的“菜鸟”。我可以插入/编辑/选择东西,但比这更高级的东西让我很困惑。我的数据库中有两个表:
表“评论”
id int(11)
review varchar(2500)
game int(11)
user int(11)
title varchar(200)`
和表“review_rating”
user int(11)
review int(11) // Corresponds to `reviews.id`
like tinyint(1)
这是我的问题:是否可以在 reviews
表上使用 ORDER BY
来按“like”= 1 的 review_ratings 总数对结果进行排序(其中 'review' = 'reviews' 表的 ID)除以 review_ratings 总数(其中 'review' = 'reviews' 表的 ID)。
示例:
SELECT *
FROM `reviews`
WHERE `game` = ?
ORDER BY (total number of review_ratings where review = reviews.id and like = 1 /
total number of review_ratings where review = reviews.id)
LIMIT 0, 10
最佳答案
SELECT t.review,
Score = CASE WHEN TotalReviews<> 0 THEN LikedReviews/TotalReviews ELSE NULL END
FROM (
SELECT *,
(SELECT COUNT(*) FROM review_rating WHERE review = r.review) AS TotalReviews ,
(SELECT COUNT(*) FROM review_rating WHERE review = r.review AND like = 1) AS LikedReviews,
FROM review r
WHERE game = ?
)t
ORDER BY t.review, Score
关于php - 你如何 ORDER BY 两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596910/