我正在尝试使用以下查询将计数作为额外的列打印出来:

SELECT Member.memberID, Member.lastname, Member.firstname
FROM CurrentLoan
    JOIN Member ON CurrentLoan.memberID = Member.memberID
WHERE CurrentLoan.memberID = Member.memberID
GROUP BY Member.lastname
HAVING COUNT( Member.memberID) ;


现在,我将其设置为查询从CurrentLoan表中获取memberID,从Member表中获取相应的名字和姓氏并将其列出的位置,但是我需要获取每个成员的数量(例如成员已购买的书籍)
有小费吗?

最佳答案

您当前的查询似乎在正确的轨道上,但是如果您希望每个成员的图书计数,则必须选择它:

SELECT
    m.memberID,
    m.lastname,
    m.firstname,
    COUNT(c.memberID) AS book_cnt
FROM Member m
LEFT JOIN CurrentLoan c
    ON m.memberID = c.memberID
GROUP BY
    m.memberID;


计数表达式COUNT(c.memberID)很重要,因为它正在计数联接表CurrentLoan中的记录。如果某个成员没有书本,则该计数表达式将报告为零。还要注意,我们在这里离开了join,以确保我们不会丢弃目前碰巧没有书的任何成员。

关于mysql - 在表SQL中创建和打印计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48801127/

10-13 01:00