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

SQL查询问题:如何获取ID=5及其关联的相关数据

解决方法

你的需求是获取id=5的行,以及和它关联的、id等于该行cp_id的记录。原SQL有两个核心问题:

  1. 条件逻辑错误:你写的WHERE cp_id = (SELECT cp_id FROM table where id = 5)是找cp_id等于112的行,但实际需要找的是id等于112的行(也就是和id=5的行通过cp_id关联的记录)
  2. 使用UNION会自动去重,即使条件正确,也可能因去重丢失数据(此处无重复,但UNION ALL更高效)

方案1:最简洁的OR条件查询

SELECT *
FROM table
WHERE id = 5 OR id = (SELECT cp_id FROM table WHERE id = 5)

方案2:修正条件后的UNION ALL写法

SELECT *
FROM table 
WHERE id = (SELECT cp_id FROM table where id = 5)
UNION ALL
SELECT *
FROM table
WHERE id = 5

方案3:自连接+EXISTS子查询

SELECT t.*
FROM table t
WHERE t.id = 5 
OR EXISTS (
    SELECT 1 
    FROM table t2 
    WHERE t2.id = 5 AND t.id = t2.cp_id
)

以上三种方法都能得到你期望的结果:

cp_ididvalue
1125ok
3369112ok

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:02:11