SQL в стеке Exchange Data Explorer - определение значений - PullRequest
0 голосов
/ 03 ноября 2018

Я новичок в Stack Overflow и очень начинающий программист. Я использую это руководство , чтобы научиться писать запросы для поиска в 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» представляет все идентификаторы пользователей сообщений, которые имеют принятый ответ (3) «u» представляет идентификаторы пользователей, которые появляются как в сообщениях, так и в профилях пользователей (4), а "au" обозначает сечение ответов и сообщений пользователей?

Полагаю, я запутался, зачем вам здесь определять "и". Неужели результаты будут возвращать гиперссылку на фактический профиль пользователя, а не просто давать число?

1 Ответ

0 голосов
/ 03 ноября 2018

'a' представляет сообщение, присоединяя его к сообщению, представленному как 'p', вместе с AcceptedAnswerId. Ваш набор данных будет фильтроваться только с AcceptedAnswers. Это также известно как самостоятельное соединение. «P» содержит информацию о пользователе, который задал вопрос, а «a» содержит информацию об ответчике, когда «u» псевдоним таблицы содержит информацию о пользователе, объединенную с ownerid of » p ', чтобы он возвращал пользовательскую информацию запрашивающего, аналогично снова пользовательская таблица используется как' au 'для получения информации об ответчике.

...