如何检查不同的 mysql 表并获取输出

How to check different mysql tables and get output

我从 allbook table,

中检索了以下数据
Book Name   copies
Book1         5
Book2         6
Book3         7
Book4         8

此外我还有另一本table,issuedbooks,我把那些书发给了一些学生。

Student   BookName      Issued Date
Ann         Book1        5/20/2022
Mike        Book1        5/21/2022
Micheal     Book2        5/22/2022
John        Book3        5/23/2022

现在我需要同时考虑两个 table 并获得当前的可用性,如下所示。

BookName    AvailableCopies
Book1            3
Book2            5
Book3            6
Book4            8

是否有任何方法可以从 mysql 查询中检索它?有人可以告诉我如何结合以上 tables 吗?

我们可以尝试使用子查询从 issuedbooks 获取所有计数,然后根据 allbook 执行 OUTER JOIN 如果只存在于 allbook 将保留 BookName ]

SELECT ab.BookName,
       ab.copies - coalesce(ib.cnt,0) AvailableCopies
FROM allbook ab
LEFT JOIN (
    SELECT BookName,COUNT(*) cnt
    FROM issuedbooks
    GROUP BY BookName
) ib
ON ab.BookName = ib.BookName  

sqlfiddle