我有一个由三个表组成的数据库,一个用于电影(id,情节,长度等),另一个用于Genres(id,name)。第三个表Movie2Genre由FOREIGN KEY组成,因此我可以将电影与某个类型链接(idMovie,idGenre)。
然后我使用以下sql列出每个活动类型:
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 电影与 Thriller 只有 1 链接喜剧 - 我希望它们按以下顺序排列:
那里的任何人可以帮助我吗?
答案 0 :(得分:0)
因此,Count by Count是我的第一个线索,由用户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