按外观数量排序外键(SQL)

时间:2015-12-12 10:21:54

标签: mysql sql

我有一个由三个表组成的数据库,一个用于电影(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 链接喜剧 - 我希望它们按以下顺序排列:

  1. 剧情
  2. 惊悚
  3. 喜剧
  4. 那里的任何人可以帮助我吗?

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