Saya memiliki dua tabel, "hierarki_table" dan "name_table".
Tabel hierarki berisi objek yang memiliki banyak orang tua dan anak-anak. Setiap orang tua dan anak dirujuk oleh id.
| object_id | parent_id_1 | parent_id_2 | child_id_1 | child_id_2 |
-----------------------------------------------------------------------------
| 1234 | 9999 | 9567 | 5555 | 5556 |
-----------------------------------------------------------------------------
Setiap id objek dalam hierarki_table memiliki entri dalam name_table:
| name_id | name |
--------------------------
| 1234 | ABCD |
--------------------------
| 9999 | ZYXW |
--------------------------
| ...
Bagaimana cara bergabung dengan setiap id di hierarki_table ke name_table beberapa kali sehingga saya dapat memperoleh hasil di mana setiap nama diisi?
Seperti ini:
| object | parent_1 | parent_2 | child_1 | child_2 |
-----------------------------------------------------------------------------
| ABCD | ZYXW | BBBB | CCCC | DDDD |
-----------------------------------------------------------------------------
Catatan: nama tabel dalam contoh hanya untuk kejelasan / kesederhanaan, nama asli memiliki nama yang tepat.
sumber
FROM
.Anda bisa menggunakan nama alias untuk tabel yang terlibat dalam kueri.
sumber
TL&DR: Alias harus digunakan ketika Anda ingin bergabung ke tabel yang sama beberapa kali
Rasional:
Di Postgres, biasanya orang bergabung dengan satu kolom dalam satu tabel ke kolom lain di tabel yang berbeda. Ini brilian dari perspektif desain sebagai kasus penggunaan normal. Saat Anda ingin bergabung dengan kolom tambahan, Anda harus menggunakan alias (praktik terbaik).
HOWTO:
Saat melakukan INNER JOIN, pastikan untuk menambahkan klausa AS bersama dengan namanya.
Contoh
Jika Anda memperhatikan jawaban 'diterima' lakukan ini di atas.
sumber