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

MySQL查询:获取首表中与指定用户无关联的非自身用户列表

MySQL查询需求与实现

数据表结构与数据

first_table(用户信息表)

ID | FullName | Gender | Status
--------------------------------
1   Mr. Jhon     M      Active
2   Mr. Cena     M      Active
3   Mrs. Lye     F      Active
4   Mr. Shaw     M      Active
5   Mr. BigB     M      Active

second_table(用户关联记录表)

ID | Sender_ID | Receiver_ID | Status
-------------------------------------
1       1           2         Send
2       2           3         Receive
3       2           4         Accept
4       4           3         Blocked
5       5           3         Waiting

查询需求

当指定用户ID为4时,从first_table中筛选满足以下条件的用户:

  • 排除指定用户自身(ID=4)
  • 排除所有在second_table的Sender_ID或Receiver_ID列中与ID=4存在关联的用户

预期查询结果

ID | FullName | Gender | Status
--------------------------------
1   Mr. Jhon     M      Active
5   Mr. BigB     M      Active

解决方案(MySQL查询语句)

SELECT ft.ID, ft.FullName, ft.Gender, ft.Status
FROM first_table ft
WHERE ft.ID != 4
AND ft.ID NOT IN (
    -- 找出所有与ID=4有发送/接收关联的用户
    SELECT Sender_ID FROM second_table WHERE Receiver_ID = 4
    UNION
    SELECT Receiver_ID FROM second_table WHERE Sender_ID = 4
);

逻辑说明

  1. 外层查询通过ft.ID != 4直接排除指定用户自身
  2. 子查询分两部分获取关联用户:
    • 第一部分提取所有将ID=4作为接收方的发送者
    • 第二部分提取所有将ID=4作为发送者的接收者
    • 用UNION合并结果并自动去重,得到完整的关联用户列表
  3. 外层查询通过NOT IN排除上述关联用户,最终得到符合要求的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:12:05