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

如何从数据库同一张表中筛选id与parent_id匹配的记录?

数据库表记录筛选方案

第一种情况:筛选同一行中id与parent_id值相同的记录

直接通过字段相等条件过滤即可,SQL语句如下:

SELECT * FROM your_table WHERE id = parent_id;

这条语句会返回所有id和parent_id值完全一致的行,比如示例中id=2、parent_id=2的记录。

第二种情况:筛选id与parent_id分布在不同行的关联记录

这类场景是指某一行的parent_id等于另一行的id(即父子记录分属不同行),可以通过自连接或者存在子查询实现:

方式1:自连接(同时获取父子两行数据)

SELECT 
    a.id AS child_id, a.name AS child_name, a.parent_id,
    b.id AS parent_id, b.name AS parent_name
FROM your_table a
INNER JOIN your_table b 
    ON a.parent_id = b.id
WHERE a.id != b.id; -- 排除同一行的情况,避免和第一种结果重复

通过将表自身连接,关联条件设为子记录的parent_id等于父记录的id,可以同时查询出关联的父子记录详情。

方式2:存在子查询(仅获取存在关联父记录的子记录)

如果只需要获取那些存在对应父记录的子行,可使用EXISTS子查询:

SELECT * FROM your_table a
WHERE EXISTS (
    SELECT 1 FROM your_table b
    WHERE b.id = a.parent_id 
    AND a.id != b.id
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:20:28