Mysql使用max(count / group by)使用join

时间:2017-04-16 13:32:39

标签: mysql count group-by max

我有两张桌子(titleauthor,authors) 作者中有名字,

和titleauthor的书面内容(计数)

我想通过在titleauthor中使用max in counts来获取作者的作者姓名。我认为我使用了错误的命令..任何人都可以纠正这个吗?

a-space/

2 个答案:

答案 0 :(得分:0)

如果您只希望单个作者拥有最多的作品,那么您可以尝试以下方法:

SELECT CONCAT(a.au_fname, ' ', a.au_lname) AS Author_Name
FROM authors a
INNER JOIN titleauthor ta
    ON a.au_id = ta.au_id
GROUP BY a.au_id
ORDER BY COUNT(*) DESC
LIMIT 1

如果大多数作者的作者之间可能存在联系,那么您可以指定第二列可用于打破平局。如果您只想报告单个作者,这将很有效。如果你真的想报告所有作者应该有一个平局,那么我们可以使用子查询。

答案 1 :(得分:0)

首先,您需要select中的字段也显示在group by中 然后,您可以order by计数下降,limit到1

select concat(a.au_fname," ", a.au_lname) as Author_Name
from authors a
    join titleauthor ta
    on a.au_id = ta.au_id
group by a.au_fname, a.au_lname
order by count(*) desc
limit 1