我的表架构是这样的:
id || imagepath || upvote || downvote
1 || abc.jpg || 50 || 5
2 || abcd.jpg || 70 || 1
3 || adc.jpg || 40 || 4
4 || aec.jpg || 70 || 4
5 || afc.jpg || 40 || 4
如何使用max upvote及其 count()检索所有记录的 imagepath 。
在上述情况下,我想检索 abcd.jpg & aec.jpg ,数量为 2条记录(匹配的记录数),因为它们的最大值均为upvote
,(在本例中为 70 )。
我目前通过以下查询检索max upvote imagepath 。
SELECT imagepath FROM uploadimage ORDER BY upvote DESC LIMIT 1
是否可以使用join或其他东西?
答案 0 :(得分:2)
select imagepath from uploadimage
where upvote in (
select max(upvote) from uploadimage
)
这实际上将返回两个记录,每个记录包含imagepath。你怎么能指望得到一个计数呢?我没有意义,因为计数是记录的数量。
答案 1 :(得分:0)
select * from uploadimage
where upvote = (select max(upvote) from uploadimage)