Mysql 如何在SQL中检索非GROUPBY列?

Mysql 如何在SQL中检索非GROUPBY列?,mysql,sql,Mysql,Sql,Books表具有id、作者姓名、作者姓名、标题、发布年份。要显示作者的名字和姓氏以及其书籍出版的最短年份,查询将为 SELECT author_fname, author_lname, Min(released_year) FROM books GROUP BY author_lname, author_fname; 但是,如果我们还想显示每个作者的第一本书的标题呢?不使用嵌套查询是否可以执行此操作 我试过这个: SELECT author_fna

Books表具有id、作者姓名、作者姓名、标题、发布年份。要显示作者的名字和姓氏以及其书籍出版的最短年份,查询将为

SELECT author_fname,
       author_lname,
       Min(released_year)
FROM books
GROUP BY author_lname,
         author_fname;
但是,如果我们还想显示每个作者的第一本书的标题呢?不使用嵌套查询是否可以执行此操作

我试过这个:

SELECT author_fname, 
       author_lname, 
       title,
       Min(released_year) 
FROM   books 
GROUP  BY author_lname, 
          author_fname;

但它给出了错误的书名。如何修复查询?

您可以使用
相关子查询:

select b.*
from books b
where b.released_year = (select min(b1.released_year) 
                         from books b1 
                         where b1.author_lname = b.author_lname and b1.author_fname = b.author_fname
                        );

就是这样。我知道你在那里做了什么。从未想过使用相关查询。谢谢你的帮助。