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

如何在SEDE查询中获取Stack Exchange提问者的用户名

解决SEDE查询添加提问者用户名的问题

你需要关联Users表来获取用户名,因为Posts表仅通过OwnerUserId存储用户ID,实际用户名存在Users表的DisplayName字段中。而OwnerDisplayName字段为空是因为它仅针对临时匿名用户或未完成注册的用户,正常注册用户的用户名不会存在于此。

修改后的查询代码如下:

SELECT 
  p.Id AS [Post Link],
  u.DisplayName AS [提问者用户名],
  Len(p.Body) AS [Body Length],
  p.Score,
  p.ViewCount,
  p.Tags
FROM Posts p
LEFT JOIN Users u ON p.OwnerUserId = u.Id
WHERE Len(p.Body) < 50
  AND p.PostTypeId = 1
ORDER BY Len(p.Body) DESC

关键说明:

  • 使用LEFT JOIN Users u ON p.OwnerUserId = u.Id关联用户表,确保即使帖子所有者账号已被删除,仍能保留帖子记录(此时用户名为NULL)。
  • 若想将NULL替换为友好提示(比如“已删除用户”),可把u.DisplayName改为ISNULL(u.DisplayName, '已删除用户') AS [提问者用户名]。
  • 之前报错u.OwnerDisplayName是因为未正确关联Users表,且Users表中不存在OwnerDisplayName字段,正确的字段名是DisplayName。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:45:54