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

如何用SQL查询未出现在approver表subordinate_id中的用户?

修正SQL查询以获取未注册为下属的用户姓名

你的原查询错误在于使用INNER JOIN配合U.id <> A.subordinate_id,这会生成用户表和审批表的笛卡尔积——每个用户会与所有subordinate_id不等于自身id的审批记录关联,导致已注册为下属的用户依然会出现在结果中(比如Beatriz会和subordinate_id=3的审批记录匹配)。

以下是三种正确的查询方式,都能得到未在approver.subordinate_id中注册的用户姓名(即Mauro和fran):

方法1:使用NOT IN

SELECT U.full_name
FROM user AS U
WHERE U.id NOT IN (SELECT subordinate_id FROM approver);

方法2:使用NOT EXISTS

SELECT U.full_name
FROM user AS U
WHERE NOT EXISTS (
    SELECT 1
    FROM approver AS A
    WHERE A.subordinate_id = U.id
);

方法3:使用LEFT JOIN + IS NULL

SELECT U.full_name
FROM user AS U
LEFT JOIN approver AS A ON U.id = A.subordinate_id
WHERE A.subordinate_id IS NULL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:21:07