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

AnimalClass表SQL查询需求:筛选指定SocialID对应AnimalId的雌雄个体

正确SQL查询方案

你的原语句问题在于,同时要求当前记录的SocialID是X2F8或A2F5,这就把同AnimalId下的male记录排除了——毕竟male的SocialID不是这两个值。要实现需求,得先找出存在符合条件female个体的AnimalId,再筛选这些AnimalId下的male和female记录,下面是两种可行的写法:

方法一:使用IN子查询

SELECT * 
FROM AnimalClass 
WHERE Gender IN ('male', 'female')
AND AnimalId IN (
    -- 先筛选出有目标female个体的AnimalId
    SELECT AnimalId 
    FROM AnimalClass 
    WHERE SocialID IN ('X2F8', 'A2F5') 
      AND Gender = 'female'
)

方法二:使用自连接

SELECT DISTINCT ac.*
FROM AnimalClass ac
-- 关联到符合条件的AnimalId对应的记录
JOIN AnimalClass ac_filter 
    ON ac.AnimalId = ac_filter.AnimalId
WHERE ac.Gender IN ('male', 'female')
  AND ac_filter.SocialID IN ('X2F8', 'A2F5') 
  AND ac_filter.Gender = 'female'

两种写法都能得到你要的结果:AnimalId1的male和female、AnimalId2的male和female记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:55:18