Mysql 按外观数对外键排序(SQL)
我有一个由三个表组成的数据库,一个用于电影(id、情节、长度等),另一个用于类型(id、名称)。第三个表,Movie2Genre,由外键组成,因此我可以将电影与特定类型(idMovie,idGenre)链接起来 然后,我使用以下sql列出每个活动类型:Mysql 按外观数对外键排序(SQL),mysql,sql,Mysql,Sql,我有一个由三个表组成的数据库,一个用于电影(id、情节、长度等),另一个用于类型(id、名称)。第三个表,Movie2Genre,由外键组成,因此我可以将电影与特定类型(idMovie,idGenre)链接起来 然后,我使用以下sql列出每个活动类型: SELECT DISTINCT G.name FROM Genre AS G INNER JOIN Movie2Genre AS M2G ON G.id = M2G.idGenre
SELECT DISTINCT G.name
FROM Genre AS G
INNER JOIN Movie2Genre AS M2G
ON G.id = M2G.idGenre
ORDER BY G.name
但是,我不想按G.name对它们进行排序,而是想按与电影链接次数最多的类型对它们进行排序
如果有3部电影链接到类型戏剧,2部电影链接到惊悚片,只有1部链接到喜剧-我希望订购如下:
有人能帮我吗?所以,按计数排序是我的第一条线索,由用户Serpiton提供。但我的案例与链接中提供的有点不同。在子查询的帮助下,我能够得到我想要的结果 以下SQL解决了我的问题:
SELECT G.name, M2G.totalCount AS tCount
FROM Genre AS G
LEFT JOIN
(
SELECT `idGenre`, COUNT(*) AS totalCount
FROM `Movie2Genre`
GROUP BY `idGenre`
) M2G ON G.`id` = M2G.`idGenre`
ORDER BY tCount DESC
我为什么会被否决?谢谢你,塞皮顿,我会仔细阅读的!