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

MySQL LEFT JOIN查询:筛选仅包含指定CIF值的法院ID

解决方案:筛选仅包含指定CIF的法院

要精准找出仅包含CIF值008003和516561的法院(排除像ID114这类还包含其他CIF的记录),可以用两种常见的SQL写法来实现:

方法一:分组筛选法

通过分组后验证组内CIF的数量和范围,确保没有额外值:

SELECT law_court_id
FROM law_court_mesul_shexs
GROUP BY law_court_id
HAVING 
  -- 确认组内包含两个目标CIF
  SUM(CASE WHEN cif IN ('008003', '516561') THEN 1 ELSE 0 END) = 2
  -- 同时确认组内没有其他额外的CIF
  AND COUNT(DISTINCT cif) = 2;

逻辑说明:

  • SUM(CASE...)统计当前法院下属于目标CIF的记录数,等于2说明两个目标CIF都存在
  • COUNT(DISTINCT cif)确保该法院下的CIF总数正好是2,没有其他多余的CIF值

方法二:NOT EXISTS排除法

先筛选出包含目标CIF的法院,再排除那些存在其他CIF的记录:

SELECT DISTINCT l1.law_court_id
FROM law_court_mesul_shexs l1
WHERE l1.cif IN ('008003', '516561')
AND NOT EXISTS (
  SELECT 1
  FROM law_court_mesul_shexs l2
  WHERE l2.law_court_id = l1.law_court_id
    AND l2.cif NOT IN ('008003', '516561')
);

逻辑说明:

  • 外层查询先锁定有目标CIF的法院
  • 子查询检查当前法院是否存在不属于目标范围的CIF,用NOT EXISTS排除这类法院,剩下的就是仅包含目标CIF的记录

这两种写法都能精准返回你需要的法院ID113,解决原查询误返回ID114的问题——原查询只检查了法院是否包含目标CIF之一,没有排除存在其他CIF的情况。

内容的提问来源于stack exchange,提问作者Ayxan Əmiraslanlı

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:02:08