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

MySQL:如何关联两表,过滤出满足双条件的ID-A

关联表筛选解决方案

可以通过两种常用的SQL写法实现需求,精准筛选出符合条件的ID-A=8:

方法一:直接关联双表后过滤

把TableB和TableA关联,同时满足TableB的分组条件和TableA的状态要求:

SELECT b.`ID-A`
FROM TableB b
JOIN TableA a ON b.`ID-A` = a.`ID-A`
WHERE b.Acode = 1 AND a.StatusCode = 2
GROUP BY b.`ID-A`
HAVING COUNT(*) < 3;

方法二:子查询先缩范围再关联

先从TableB里选出符合分组条件的ID-A,再和TableA关联过滤状态:

SELECT sub.`ID-A`
FROM (
    SELECT `ID-A`
    FROM TableB
    WHERE Acode = 1
    GROUP BY `ID-A`
    HAVING COUNT(*) < 3
) sub
JOIN TableA a ON sub.`ID-A` = a.`ID-A`
WHERE a.StatusCode = 2;

补充说明

  • 两种写法都能得到你要的结果:第一种逻辑直观,一步到位;第二种先缩小TableB的结果集,数据量较大时性能更优。
  • 注意ID-A包含特殊字符,部分数据库需要用反引号(`)包裹字段名,避免语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:13:20