Tengo dos tablas, "hierarchy_table" y "name_table".
La tabla de jerarquía contiene un objeto que tiene varios padres e hijos. Cada padre e hijo está referenciado por id.
| object_id | parent_id_1 | parent_id_2 | child_id_1 | child_id_2 |
-----------------------------------------------------------------------------
| 1234 | 9999 | 9567 | 5555 | 5556 |
-----------------------------------------------------------------------------
Cada ID de objeto en la jerarquía_tabla tiene una entrada en la tabla_nombre:
| name_id | name |
--------------------------
| 1234 | ABCD |
--------------------------
| 9999 | ZYXW |
--------------------------
| ...
¿Cómo unir cada ID en la jerarquía_tabla al nombre_tabla varias veces para que pueda tener un resultado donde se rellena cada nombre?
Me gusta esto:
| object | parent_1 | parent_2 | child_1 | child_2 |
-----------------------------------------------------------------------------
| ABCD | ZYXW | BBBB | CCCC | DDDD |
-----------------------------------------------------------------------------
Nota: los nombres de las tablas en el ejemplo son solo por claridad / simplicidad, los nombres reales tienen nombres propios.
fuente
FROM
.Puede usar el nombre de alias para las tablas involucradas en la consulta.
fuente
TL&DR: el alias se debe utilizar cuando desee unirse a la misma tabla varias veces
Racional:
En Postgres, normalmente las personas unen una columna en una tabla a otra columna en una tabla diferente. Esto fue brillante desde una perspectiva de diseño como el caso de uso normal. Cuando desee unir columnas adicionales, deberá usar alias (práctica recomendada).
CÓMO:
Al realizar una UNIÓN INTERNA, asegúrese de agregar una cláusula AS junto con el nombre.
Ejemplo
Si notas que la respuesta 'aceptada' hace esto arriba.
fuente