如何检查不同的 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
我从 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