按受欢迎程度排序 MYSQL
Order by popularity MYSQL
我想做一个查询,如标题所说,按受欢迎程度排序。
我所说的受欢迎程度是指评论最多的那个,例如:
文章TABLE
ID | TITLE
评论TABLE
ID | COMMENT | ARTICLE_ID
查询应该ORDER BY DESC
ARTICLE title
取决于评论数(ARTICLE_ID
)。
例如:
'THIS IS A DUMMY TITLE' <= NUMBER OF COMENTS = 11
'THIS IS THE DUMMY TITLE' <= NUMBER OF COMENTS = 7
'THIS IS OTHER DUMMY TITLE' <= NUMBER OF COMENTS = 3
select max(a.ID) as ARTICLE_ID, max(a.TITLE) as TITLE, sum(1) as COMMENTS
from COMMENTS c
join ARTICLE a on (a.ID = c.ARTICLE_ID)
group by c.ARTICLE_ID
order by 3 desc
SELECT `commets`.*,`article`.title
FROM (SELECT COUNT(ARTICLE_ID) AS C, `ARTICLE_ID` FROM `commets` GROUP BY `ARTICLE_ID`) AS TAB JOIN `commets`
ON TAB.`ARTICLE_ID` = `commets`.`ARTICLE_ID` JOIN `article`
ON `article`.`ID` = `commets`.`ARTICLE_ID`
ORDER BY TAB.C DESC
说明
好的,所以在这里我假设需要整个评论行,所以为了不对获得的每一列使用聚合函数,以防我们想在主 select 中包含 GROUP BY,我通过内联 select 创建了一个 table 以获得评论最高的文章:
(SELECT COUNT(ARTICLE_ID) AS C, `ARTICLE_ID` FROM `commets` GROUP BY `ARTICLE_ID`)
并将此table别名为TAB,然后将此table中的文章id与评论tables加入,得到comments columns and the article table 获取文章的标题,然后通过内联 select.[=12 中的 count 列 C 对整个查询进行排序=]
我想做一个查询,如标题所说,按受欢迎程度排序。 我所说的受欢迎程度是指评论最多的那个,例如:
文章TABLE
ID | TITLE
评论TABLE
ID | COMMENT | ARTICLE_ID
查询应该ORDER BY DESC
ARTICLE title
取决于评论数(ARTICLE_ID
)。
例如:
'THIS IS A DUMMY TITLE' <= NUMBER OF COMENTS = 11
'THIS IS THE DUMMY TITLE' <= NUMBER OF COMENTS = 7
'THIS IS OTHER DUMMY TITLE' <= NUMBER OF COMENTS = 3
select max(a.ID) as ARTICLE_ID, max(a.TITLE) as TITLE, sum(1) as COMMENTS
from COMMENTS c
join ARTICLE a on (a.ID = c.ARTICLE_ID)
group by c.ARTICLE_ID
order by 3 desc
SELECT `commets`.*,`article`.title
FROM (SELECT COUNT(ARTICLE_ID) AS C, `ARTICLE_ID` FROM `commets` GROUP BY `ARTICLE_ID`) AS TAB JOIN `commets`
ON TAB.`ARTICLE_ID` = `commets`.`ARTICLE_ID` JOIN `article`
ON `article`.`ID` = `commets`.`ARTICLE_ID`
ORDER BY TAB.C DESC
说明
好的,所以在这里我假设需要整个评论行,所以为了不对获得的每一列使用聚合函数,以防我们想在主 select 中包含 GROUP BY,我通过内联 select 创建了一个 table 以获得评论最高的文章:
(SELECT COUNT(ARTICLE_ID) AS C, `ARTICLE_ID` FROM `commets` GROUP BY `ARTICLE_ID`)
并将此table别名为TAB,然后将此table中的文章id与评论tables加入,得到comments columns and the article table 获取文章的标题,然后通过内联 select.[=12 中的 count 列 C 对整个查询进行排序=]