【问题标题】:How to display values from different tables in certain time frame MYSQL如何在特定时间范围内显示来自不同表的值 MYSQL
【发布时间】:2020-08-09 13:21:17
【问题描述】:

我已经附上了这个问题中包含的 MYSql 表格。我的问题是:

2017 年客户借用的前 5 位作者的名字和姓氏。到目前为止我的代码:

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

我认为到目前为止,我的代码只显示了 2017 年的前 5 个作者 ID,但我不知道如何显示这些名称。我看到了 AuthorID 和 BookAuthor 之间的链接(也许)。非常感谢您提供的任何帮助。

这是表格:

【问题讨论】:

    标签: mysql sql join group-by count


    【解决方案1】:

    您可以将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 子句改回原来的状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 2021-10-13
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多