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

如何实现含「全部类型」的表关联查询:特定用户类型返回全量记录

带「全部类型」逻辑的关联查询解决方案

修改后的SQL查询语句

SELECT r.*
FROM record r
JOIN user u ON u.id = :userId
WHERE u.type_id = 3 OR r.type_id = u.type_id;

逻辑说明

  • 先通过JOIN user u ON u.id = :userId定位到目标用户,获取其type_id
  • 利用OR实现分支判断:
    • 当用户type_id为3时,直接返回所有record记录
    • 当用户type_id为1或2时,仅返回record中type_id与用户匹配的记录

场景验证

对应需求中的三个测试场景:

  • 用户ID=1:用户type_id=1,返回record中type_id=1的记录(ID1、2),符合预期
  • 用户ID=3:用户type_id=2,返回record中type_id=2的记录(ID3),符合预期
  • 用户ID=2:用户type_id=3,返回所有record记录(ID1、2、3),符合预期

扩展写法(含类型描述)

如果需要同时返回类型表的描述信息,可调整为:

SELECT r.id AS record_id, t.type_desc, u.id AS user_id
FROM record r
JOIN type t ON r.type_id = t.id
JOIN user u ON u.id = :userId
WHERE u.type_id = 3 OR r.type_id = u.type_id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:24:18