You need to enable JavaScript to run this app. SQL表连接查询:返回billing侧关联计数为1的mt表记录
优惠活动
大模型
产品
解决方案
定价
更多

SQL表连接查询:返回billing侧关联计数为1的mt表记录

基于关联计数的业务表筛选实现

基础表定义

涉及两张通过公共字段关联的业务表:

  • mt table:存储交易数据的业务表,每条交易记录均可通过external_id字段与计费表完成关联匹配
  • billing:计费业务表,同样以external_id作为和交易表的关联匹配字段

核心查询需求

从mt table中筛选并返回满足以下条件的记录:对应当前mt表记录的external_id值,在billing表中匹配到的关联记录总计数恰好为1。

规则验证示例

为明确筛选逻辑,给出两组演示数据的映射关系:

  1. mt table 数据内容:
    • id=1,对应external_id=444
    • id=2,对应external_id=222
    • id=3,对应external_id=333
    • id=4,对应external_id=111
  2. billing 数据内容:
    • id=3,对应external_id=444
    • id=4,对应external_id=444
    • id=5,对应external_id=333
    • id=6,对应external_id=333
    • id=7,对应external_id=222
    • id=8,对应external_id=111

按照筛选规则,上述示例场景下的预期返回结果为mt table中id=2(对应external_id=222)、id=4(对应external_id=111)的条目。匹配判断逻辑为:这两个external_id值在billing表中仅存在1条关联记录,其余两个external_id(444、333)在billing表中均对应2条关联记录,不满足计数为1的筛选要求。

参考实现查询语句

可通过子查询预聚合关联计数、再内连接匹配的方式实现筛选,参考SQL如下:

SELECT mt.* 
FROM `mt table` mt
INNER JOIN (
    -- 预统计billing表中每个external_id的关联记录数,仅保留计数为1的有效关联键
    SELECT external_id
    FROM billing
    GROUP BY external_id
    HAVING COUNT(*) = 1
) matched_key
ON mt.external_id = matched_key.external_id

该执行逻辑可避免全表关联后再做分组的性能损耗,输出结果与示例预期完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 21:27:03