SQL 在 Stack Exchange Data Explorer 上 - 定义值
SQL on Stack Exchange Data Explorer - defining values
我是 Stack Overflow 的新手,是一名非常新手的编码员。我正在使用 this tutorial to learn how to write queries to search the 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"。是不是这样结果就会 return 一个指向用户实际个人资料的超链接,而不是仅仅给出一个数字?
'a' 表示 post,通过将其加入表示为 'p' 的 post 以及 AcceptedAnswerId,您的数据集将仅使用 AcceptedAnswers 进行过滤。这也称为自连接,'p' 包含提出问题的用户信息,'a' 包含回答者的信息,当 'u' 是 table 的别名时包含用户信息与 'p' 的 ownerid 连接,因此它 returns 提问者的用户信息,同样,用户 table 被用作 'au' 来检索回答者信息。
我是 Stack Overflow 的新手,是一名非常新手的编码员。我正在使用 this tutorial to learn how to write queries to search the 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"。是不是这样结果就会 return 一个指向用户实际个人资料的超链接,而不是仅仅给出一个数字?
'a' 表示 post,通过将其加入表示为 'p' 的 post 以及 AcceptedAnswerId,您的数据集将仅使用 AcceptedAnswers 进行过滤。这也称为自连接,'p' 包含提出问题的用户信息,'a' 包含回答者的信息,当 'u' 是 table 的别名时包含用户信息与 'p' 的 ownerid 连接,因此它 returns 提问者的用户信息,同样,用户 table 被用作 'au' 来检索回答者信息。