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

如何获取SELECT语句中另一ID对应的bGroup?SQL查询问题排查

问题分析与解决方案

问题所在

  1. WHERE条件逻辑错误:原查询中WHERE 'Donor BGroup' IN (...)里的'Donor BGroup'是字符串常量,并非字段名。子查询返回的是血型值(如XY、AB等),该字符串永远无法与子查询结果匹配,导致无数据返回。
  2. 未正确获取捐赠者血型:SELECT列表中的'Donor BGroup'是固定字符串,没有关联到捐赠者对应的tblPerson记录,无法拿到实际的捐赠者血型。

替代方案

只需额外关联一次tblPerson表(给别名区分管理员对应的记录),直接获取捐赠者的血型即可,无需使用子查询过滤:

SELECT 
    t.adminID, 
    p.firstName, 
    p.lastName, 
    t.transID, 
    t.transDate, 
    t.donationID, 
    p.bGroup AS 'Admin BGroup', 
    b.bankName, 
    d.personID AS 'Donor ID', 
    d_person.bGroup AS 'Donor BGroup'
FROM tblTrans t
JOIN tblAdmin a ON t.adminID = a.adminID
JOIN tblPerson p ON a.personID = p.personID
JOIN tblDonation d ON t.donationID = d.donationID
JOIN tblBank b ON d.bankID = b.bankID
JOIN tblPerson d_person ON d.personID = d_person.personID;

结果说明

执行上述查询后,会得到符合预期的结果,例如第一条记录为:
1, John, Doe, 1, 2022-12-31, 1, XY, Bank 1, 3B, OP,完全匹配你的预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:20:16