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 - 定义值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 gnu arm eclipse 或 cdt 上的项目资源管理器上设置或替换文件?