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

如何查询成员恰好为指定列表的球队?需保留现有JOIN关联

问题分析

原SQL仅能筛选出至少包含Bob、James、Sam三名球员的球队,无法排除同时包含额外球员的球队(如测试数据中的Green Team),也无法过滤球员数量不足3人的球队(如Blue Team),达不到完全精确匹配的要求。

修正后SQL

SELECT t.name
FROM teams t
LEFT JOIN members m
  ON t.name = m.team_name
LEFT JOIN players p
  ON m.player_name = p.name
GROUP BY t.name
HAVING 
  -- 校验目标列表的3名球员全部在队中,无遗漏
  COUNT(DISTINCT CASE WHEN m.player_name IN ('Bob', 'James', 'Sam') THEN m.player_name END) = 3
  -- 校验球队总球员数恰好为3,无额外成员
  AND COUNT(DISTINCT m.player_name) = 3;

实现说明

  • 完全保留了原查询的所有JOIN关联,没有仅查询members表,符合需求限制
  • 按球队名称分组后对成员属性做双重校验:
    1. 第一个计数条件确保三名目标球员都在当前球队中,没有缺失
    2. 第二个计数条件确保球队没有目标列表之外的其他球员
  • 两个条件同时满足即可精准匹配到成员和目标列表完全一致的Red Team

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:36:00