У меня есть две таблицы: «имя_Иерархии» и «имя_таблицы».
Таблица иерархии содержит объект, который имеет несколько родителей и потомков. На каждого родителя и ребенка ссылается идентификатор.
| object_id | parent_id_1 | parent_id_2 | child_id_1 | child_id_2 |
-----------------------------------------------------------------------------
| 1234 | 9999 | 9567 | 5555 | 5556 |
-----------------------------------------------------------------------------
У каждого идентификатора объекта вierarchy_table есть запись в name_table:
| name_id | name |
--------------------------
| 1234 | ABCD |
--------------------------
| 9999 | ZYXW |
--------------------------
| ...
Как мне объединить каждый идентификатор в иерархической таблице с таблицей имен несколько раз, чтобы получить результат, где каждое имя заполнено?
Нравится:
| object | parent_1 | parent_2 | child_1 | child_2 |
-----------------------------------------------------------------------------
| ABCD | ZYXW | BBBB | CCCC | DDDD |
-----------------------------------------------------------------------------
Примечание: имена таблиц в примере приведены только для ясности / простоты, настоящие имена имеют собственные имена.
источник
FROM
.Вы можете использовать псевдоним для таблиц, участвующих в запросе.
источник
TL & DR: псевдоним следует использовать, если вы хотите присоединиться к одной и той же таблице несколько раз
Rational:
В Postgres обычно люди объединяют один столбец в одной таблице с другим столбцом в другой таблице. Это было блестяще с точки зрения дизайна в качестве обычного варианта использования. Если вы хотите присоединиться к дополнительным столбцам, вам нужно использовать псевдонимы (наилучшая практика).
КАК:
При выполнении INNER JOIN обязательно добавьте предложение AS вместе с именем.
пример
Если вы заметили «принятый» ответ, сделайте это выше.
источник