我是 mysql 新手,对连接和添加内容有疑问。
我有以下表格:books和genres
书籍表如下所示:
id | name | pages | genre_id
流派表:
id | name | category_id
我想获得页面最多的类型。
所以如果genre1有5本书,每本书有100页,那么有500页genre1,如果genre2有 2 本书但每本书有 300 页,则genre2有 600 页。查询应该返回genre2。
任何人都可以帮忙吗?
这将获得类型和其中的总页数,按降序排列,LIMIT 1将选择顶部的一个。
SELECT
g.name,
SUM(b.pages) AS p_total
FROM
books b
JOIN genres g ON g.id = b.genre_id
GROUP BY g.id
ORDER BY p_total DESC
LIMIT 1
这是说明以下查询的SQL Fiddle
SELECT g.name, SUM(b.pages)
FROM books AS b
INNER JOIN genres AS g
ON b.genre_id = g.id
GROUP BY g.id
ORDER BY SUM(b.pages) DESC
LIMIT 1
我的 MySQL 真的很生锈,但这听起来很简单:
SELECT G.name
FROM Books AS B INNER JOIN Genres AS G ON B.genre_id = G.id
GROUP BY G.name
ORDER BY SUM(B.pages) DESC
LIMIT 1
请注意,如果有平局,您还没有定义您想要什么。