因此,我最近一直在开发一个SEDE query,它可以从给定的Stack Exchange站点输出正文少于50个字符的帖子.

虽然我已经弄清楚了如何获得这些帖子的链接,但我也想知道那些问题发布时所用的用户名.

以下是我当前的代码:

SELECT p.Id AS [Post Link], Len(Body) AS [Body Length], p.Score, p.ViewCount, p.Tags
FROM Posts p
WHERE Len(Body) < 50
AND p.PostTypeId = 1
ORDER BY Len(Body) DESC

为了得到我想要的结果,我试着做了些什么:

  • 虽然p.OwnerUserId确实会生成一个新列,但它只会生成给定的用户ID,而我只想要具体的用户名.
  • 但是,如果我将p.OwnerUserId更改为p.OwnerDisplayName,这只会产生一个空列,其中没有任何内容.
  • 如果我try 拨打u.OwnerDisplayName,似乎也会出现错误

    Line 1: The multi-part identifier "u.OwnerDisplayName" could not be bound.

我的问题是:我如何才能将问题的原始发帖的用户名也放入它自己的专栏中?


包括以前try 的修订(如果有助于查看):

推荐答案

你只需要加入Users表就可以了:

SELECT p.Id          AS [Post Link]
     , u.DisplayName
     , len(p.Body)   AS [Body Length]
     , p.Score
     , p.ViewCount
     , p.Tags
  FROM Posts p
           join
       Users u on u.Id = p.OwnerUserId
 WHERE len(p.Body)  < 50
   AND p.PostTypeId = 1
 ORDER BY len(p.Body) DESC

Sql相关问答推荐

SUM(条件)在Oracle?

如何从上一个值减go 值

对于表A中的每一行,更新表B中与金额有关的行

编写一个SQL查询来返回收视率较高的类型,并取这些收视率的平均值,我该如何做呢?

PostgreSQL抽奖查询

使用generate_series()时,LEFT联接缺少日期/间隔

如何根据行状态设置正确的标志

如何找到一个组合的两个列,这是不是在其他表在ORACLE SQL?

在Power Bi中将SQL代码转换为DAX

使用左外部联接更正列中第+1行的值时重复

如何在 SNOSQL 中执行反连接(或 where 子句过滤)以查找字段不包含另一个表中的值的行?

使用临时表判断记录是否存在 - 如果存在则执行相同的操作

SQL 语句将一列中的值与另一列中的不同值相加,同时按第三列进行分组?

PostgreSQL中如何提取以特定字符开头的字符串中的所有单词?

基于字符串的SQL查询

正则表达式忽略特定数据部分的分隔符

我如何编写一个遍历数组数组并将所有值连接成一个字符串的 postgres 函数

SQL:如何从时间戳数据生成时间序列并计算不同事件类型的累计总和?

Postgres 条件求和函数

运算符不存在:integer = bigint[]