Stack Exchange 数据资源管理器上的 SQL - 定义值

Posted

技术标签:

【中文标题】Stack Exchange 数据资源管理器上的 SQL - 定义值【英文标题】:SQL on Stack Exchange Data Explorer - defining values 【发布时间】:2019-04-07 14:50:24 【问题描述】:

我是 Stack Overflow 的新手,并且是一个非常新手的编码员。我正在使用this tutorial 来学习如何编写查询来搜索Stack Exchange Data Explorer。

我在看这行代码:

SELECT p.Title, p.Id, p.Score, a.Score AS "Accepted Score", 
u.DisplayName AS "Asker", au.DisplayName AS "Answerer"

FROM Posts p
JOIN Posts a ON p.AcceptedAnswerId = a.Id
JOIN Users u ON p.OwnerUserId = u.Id
JOIN Users au ON a.OwnerUserId = au.Id
WHERE p.PostTypeId = 1
AND p.Score >= 25
and p.AcceptedAnswerId IS NOT NULL
ORDER BY p.Score DESC

...我想确保我理解它。我有点卡住的部分是:

JOIN Posts a ON p.AcceptedAnswerId = a.Id
JOIN Users u ON p.OwnerUserId = u.Id
JOIN Users au ON a.OwnerUserId = au.Id

我纠正了吗 (1)我们本质上是在定义“a”、“u”和“au”,并且(2)“a”代表帖子中所有具有可接受答案的用户 ID(3)“u”代表用户 ID出现在帖子和用户资料中(4),“au”代表答案帖子和用户的横截面?

我想我很困惑为什么你需要在这里定义“u”。是不是结果会返回一个指向用户实际个人资料的超链接,而不仅仅是给出一个数字?

【问题讨论】:

【参考方案1】:

'a' 代表帖子,通过将其与以“p”表示的帖子以及 AcceptedAnswerId 一起加入,您的数据集将仅使用 AcceptedAnswers 进行过滤。这也称为自我加入,此处“p”包含提出问题的用户信息,“a”包含回答者的信息,当“u”包含用户信息的表的别名与“的 ownerid”连接时p' 以便它返回提问者的用户信息,同样,用户表再次用作 'au' 来检索回答者信息。

【讨论】:

以上是关于Stack Exchange 数据资源管理器上的 SQL - 定义值的主要内容,如果未能解决你的问题,请参考以下文章

列出队列管理器上的所有队列

如何在 C++ 中更改任务管理器上的进程名称?

如何在 gnu arm eclipse 或 cdt 上的项目资源管理器上设置或替换文件?

有没有办法获取我的 Stack Exchange 统计信息?

从字段解析器上的父节点获取数据

json Stack Exchange热门标签