Я смог написать вот такой запрос, но не до конца понимаю, как тут всё работает:
select concat(avtorfam, ' ', avtorname) as Фамилия_Имя,
count (bookname) as Количество_книг from books
join avtor on books.idavtor=avtor.idavtor
group by avtorfam, avtorname;
Проблема тут с count. Сделаем следующий запрос:
select concat(avtorfam, ' ', avtorname) as Фамилия_Имя from books
join avtor on books.idavtor=avtor.idavtor
group by avtorfam, avtorname;
Такой запрос просто выведет все различные имена и фамилии, верно? Как тогда count считает количество элементов в столбце bookname у каждой различной комбинации имени и фамилии? Я правильно понимаю, что сначала выполняется group by, а потом из этого результата уже берётся select? В общем, мне не очень понятно, в каком порядке всё это дело выполняется.