Ich habe zwei Tabellen, "hierarchy_table" und "name_table".
Die Hierarchietabelle enthält ein Objekt mit mehreren Eltern und Kindern. Jedes Elternteil und Kind wird mit der ID referenziert.
| object_id | parent_id_1 | parent_id_2 | child_id_1 | child_id_2 |
-----------------------------------------------------------------------------
| 1234 | 9999 | 9567 | 5555 | 5556 |
-----------------------------------------------------------------------------
Jede Objekt-ID in der hierarchy_table hat einen Eintrag in der name_table:
| name_id | name |
--------------------------
| 1234 | ABCD |
--------------------------
| 9999 | ZYXW |
--------------------------
| ...
Wie verbinde ich jede ID in der hierarchy_table mehrmals mit der name_table, damit ich ein Ergebnis erzielen kann, bei dem jeder Name ausgefüllt ist?
So was:
| object | parent_1 | parent_2 | child_1 | child_2 |
-----------------------------------------------------------------------------
| ABCD | ZYXW | BBBB | CCCC | DDDD |
-----------------------------------------------------------------------------
Hinweis: Die Tabellennamen im Beispiel dienen lediglich der Übersichtlichkeit. Die tatsächlichen Namen haben Eigennamen.
quelle
FROM
.Sie können den Aliasnamen für Tabellen verwenden, die an der Abfrage beteiligt sind.
quelle
TL & DR: Alias sollte verwendet werden, wenn Sie mehrmals derselben Tabelle beitreten möchten
Rational:
In Postgres verbinden normalerweise Personen eine Spalte in einer Tabelle mit einer anderen Spalte in einer anderen Tabelle. Dies war aus gestalterischer Sicht als normaler Anwendungsfall brillant. Wenn Sie zusätzliche Spalten verknüpfen möchten, müssen Sie Aliase verwenden (Best Practice).
WIE MAN:
Stellen Sie beim Ausführen eines INNER JOIN sicher, dass Sie eine AS-Klausel zusammen mit dem Namen hinzufügen.
Beispiel
Wenn Sie die 'akzeptierte' Antwort bemerken, tun Sie dies oben.
quelle