Как понять этот запрос? - PullRequest
0 голосов
/ 10 июля 2019
SELECT DISTINCT
    ...
    ...
    ...
FROM Reviews Rev
    INNER JOIN Reviews SubRev ON Subrev.W_ID=Rev.ID
WHERE Rev.Status='Approved'

Это небольшая часть длинного запроса, который я пытаюсь понять в течение дня.Что происходит с объединением?Таблица отзывов, кажется, соединена сама с собой, под разными псевдонимами.Почему это сделано?Чего это достичь?Кроме того, поле идентификатора таблицы Reviews является пустым для записей, которые, тем не менее, выбраны и возвращены.Это правильно, но я не понимаю, как это может произойти, если поле W_ID не равно нулю.

1 Ответ

1 голос
/ 10 июля 2019

Позволяет объединить одну строку таблицы с другой строкой таблицы.

Я видел, как это сделано, и использовал это сам, в тех случаях, когда у вас может быть связь между этими строками.

Примеры из реальной жизни:

  • Старая версия записи и более новая версия
  • Некоторая иерархическая связь (например, если таблица содержит записи о людях, вы можете записать, что кто-то является родителем кого-то другого). Вероятно, есть множество других возможных вариантов использования.

SQL позволяет создавать внешний ключ, который связан между двумя разными столбцами в одной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...