SQL в обозревателе данных Stack Exchange — определение значений

Я новичок в Stack Overflow и очень начинающий кодер. Я использую это руководство, чтобы научиться писать запросы для поиска Обозреватель данных Stack Exchange.

Я смотрю на эту строку кода:

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» представляет собой сечение сообщений с ответами и пользователей?

Я думаю, я смущен, почему вам нужно определить здесь «u». Это так, что результаты вернут гиперссылку на фактический профиль пользователя, а не просто дадут номер?


person Sara Roberts    schedule 03.11.2018    source источник


Ответы (1)


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

person Ajan Balakumaran    schedule 03.11.2018