Как отобразить значения из разных таблиц в определенный период времени MYSQL - PullRequest
1 голос
/ 26 апреля 2020

Я приложил таблицы, которые включены в этот вопрос для MYSql. Мой вопрос гласит:

Имена и фамилии 5 лучших авторов клиентов, позаимствованных в 2017 году. Мой код пока:

SELECT BookID,BorrowDate COUNT(BookID) AS BookIDCount 
FROM Borrower    
WHERE BorrowDate = 2017
ORDER BY BookIDCount DESC
LIMIT 5

Мне кажется, что мой код пока отображает только 5 лучших авторов. ID в 2017 году, но я не могу понять, как отображать имена. Я вижу связь между AuthorID и BookAuthor (возможно). Большое спасибо за любую помощь, которую вы можете оказать.

Вот таблицы:

enter image description here

1 Ответ

1 голос
/ 26 апреля 2020

Вы можете принести таблицу client с join. Я думаю, что вы хотите:

select c.clientFirstName, c.clientLastName, count(*) no_books
from borrower b
inner join client c on c.clientId = b.clientId
where b.borrowDate >= '2017-01-01' and b.borrowDate < '2018-01-01'
group by c.clientId, c.clientFirstName, c.clientLastName
order by count(*) desc
limit 5

Это обрабатывает borrowDate как столбец типа date (или тому подобное), потому что это то, что кажется. Если это просто число, представляющее год, то вы можете вернуть условие where к исходному состоянию.

...