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

如何查询AccountNo未出现在ParentAccountNo中的账户数据?

解决方案:找出未作为父账号的账户记录

嘿,这需求很明确——我们要从Accounts表中筛选出那些AccountNo从未在任何记录的ParentAccountNo字段中出现过的行。下面给你两种适用于MySQL和SQL Server的实现方案:

方法一:使用NOT IN子查询

这种方法逻辑直观,先找出所有存在的父账号,再排除那些属于父账号的账户:

SELECT AccountNo, ParentAccountNo, name
FROM Accounts
WHERE AccountNo NOT IN (
    -- 先筛选出所有非空的父账号值
    SELECT ParentAccountNo
    FROM Accounts
    WHERE ParentAccountNo IS NOT NULL
);

⚠️ 注意:必须在子查询中过滤掉ParentAccountNo为NULL的记录,因为NOT IN子句中如果包含NULL,会导致整个查询返回空结果(SQL中任何值和NULL比较的结果都是未知)。

方法二:使用LEFT JOIN+IS NULL

这种方法通过左连接来匹配父账号关系,未匹配到的就是我们要找的记录,在数据量较大时性能通常更优:

SELECT a.AccountNo, a.ParentAccountNo, a.name
FROM Accounts a
-- 左连接自身,匹配当前账号作为父账号的情况
LEFT JOIN Accounts p ON a.AccountNo = p.ParentAccountNo
-- 没有匹配到的,说明该账号从未作为父账号出现
WHERE p.ParentAccountNo IS NULL;

两种方法执行后都会得到你预期的结果:

+-----------+-----------------+------+
| AccountNo | ParentAccountNo | name |
+-----------+-----------------+------+
|         4 |               2 | DEF  |
|         6 |               3 | MNO  |
|         7 |               5 | JKL  |
+-----------+-----------------+------+

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:10:23