You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL多表连接如何查询全部分馆对应《The Lost Tribe》馆藏数,无则返回NULL

SQL查询需求实现方案

原代码核心问题

  • 关联顺序错误:要输出所有图书馆分馆,必须以tbl_library_branch分馆表作为主表做左关联,原代码先关联分馆和副本表、再右连图书表的逻辑,会直接丢失没有对应图书副本的分馆记录
  • 过滤条件位置错误:将书名筛选放在全局WHERE子句中,会过滤掉所有未匹配到《The Lost Tribe》的行,最终仅保留有馆藏的分馆

修正后的可执行代码

SELECT 
    l.branchName,
    r.noOfCopies
FROM tbl_library_branch l
LEFT JOIN tbl_book_copies r 
    ON l.branchId = r.branchId
    AND r.bookId = (SELECT bookId FROM tbl_book WHERE title = 'The Lost Tribe')

逻辑说明

主表使用全量分馆表,保证所有分馆都会出现在结果中;目标图书的筛选逻辑放在LEFT JOIN的关联条件里,仅关联对应书籍的副本记录,无对应馆藏的分馆noOfCopies字段自动返回NULL,不会被过滤。
如果需要无馆藏时返回0而非NULL,可将查询字段替换为COALESCE(r.noOfCopies, 0)。

内容的提问来源于stack exchange,提问作者Mint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:06:03