我是mysql的新手,对于加入和添加内容有疑问。
我有以下表格:books
和genres
书籍表如下:
id | name | pages | genre_id
流派表:
id | name | category_id
我想获得页数最多的类型
因此,如果genre1有5本书,每本书有100页,genre1
有500页,如果genre2
有2本书,但每本书有300页,那么genre2
有600页。查询应返回genre2
。
有人可以帮忙吗?
答案 0 :(得分:1)
这将获得其中的类型和总页数,按降序排列,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
答案 1 :(得分: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
答案 2 :(得分:0)
我的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
请注意,如果有平局,您还没有定义自己想要的内容。