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

多对多关系中基于关联表的特定条件SQL查询求助

多对多中间表查询解决方案

通用方案:关联3个不同interval_id的记录

如果只要求specific_id关联任意3个不同的interval_id,可以通过分组统计筛选目标记录,再关联specifics表获取speed字段:

SELECT s.speed
FROM specifics s
JOIN specifics_intervals si ON s.id = si.specific_id
GROUP BY s.id, s.speed
HAVING COUNT(DISTINCT si.interval_id) = 3;

关键逻辑说明:

  • GROUP BY s.id, s.speed:按specifics表的主键和speed字段分组,确保每个specific_id仅返回一条speed结果
  • HAVING COUNT(DISTINCT si.interval_id) = 3:筛选出关联的不同interval_id数量恰好为3的specific_id

指定具体3个interval_id的方案

如果需要specific_id恰好关联指定的3个interval_id(比如示例中的37、38、39),可以使用以下语句:

SELECT s.speed
FROM specifics s
JOIN specifics_intervals si ON s.id = si.specific_id
WHERE si.interval_id IN (37, 38, 39)
GROUP BY s.id, s.speed
HAVING COUNT(DISTINCT si.interval_id) = 3;

关键逻辑说明:

  • WHERE si.interval_id IN (37, 38, 39):先限定统计范围为指定的三个interval_id
  • 结合HAVING COUNT(DISTINCT ...) =3,确保该specific_id同时关联了这三个指定的interval_id

内容的提问来源于stack exchange,提问作者Killian M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:32:13