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

如何用单SQL查询获取punches表去重user_id及对应user表name

解决方案

你可以通过**表连接(JOIN)**将两个表合并查询,一次性获取唯一的user_id和对应的name字段,以下是两种常用写法:

写法一:DISTINCT + INNER JOIN

SELECT DISTINCT p.user_id, u.name
FROM punches p
INNER JOIN user u ON p.user_id = u.user_id
WHERE p.organisation_id = '$current_organisation_id';

写法二:GROUP BY + INNER JOIN

由于user表的user_id是主键,每个user_id对应唯一的name,也可以用GROUP BY来确保结果唯一:

SELECT p.user_id, u.name
FROM punches p
INNER JOIN user u ON p.user_id = u.user_id
WHERE p.organisation_id = '$current_organisation_id'
GROUP BY p.user_id, u.name;

补充说明

  • INNER JOIN仅返回在punches和user表中都存在匹配记录的用户,完全匹配你原本从punches表提取用户的需求;
  • 若需兼容punches表有记录但user表无对应数据的极端场景(通常不会出现,因为user_id应为外键),可将INNER JOIN替换为LEFT JOIN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:04:52