Menggunakan alias untuk menangani kueri join pada tabel yang sama
Sering kali, Anda memiliki tabel yang memuat data hierarkis, seperti karyawan dan manajer yang juga merupakan karyawan. Karena itu, Anda mungkin ingin melakukan join suatu tabel dengan dirinya sendiri pada kolom yang berbeda. Metode .alias(), yang membuat salinan sebuah tabel, membantu menyelesaikan tugas ini. Karena ini tabel yang sama, Anda hanya memerlukan klausa where untuk menentukan kondisi join.
Di sini, Anda akan menggunakan metode .alias() untuk membangun kueri yang melakukan join tabel employees dengan dirinya sendiri guna mengetahui setiap orang melapor kepada siapa.
Latihan ini adalah bagian dari kursus
Pengantar Basis Data di Python
Petunjuk latihan
- Simpan alias dari tabel
employeessebagaimanagers. Untuk melakukannya, terapkan metode.alias()padaemployees. - Bangun kueri untuk memilih
namekaryawan dannamemanajernya.namemanajer sudah dipilih untuk Anda. Gunakanlabeluntuk memberi label kolomnamedariemployeessebagai'employee'. - Tambahkan klausa where ke
stmtuntuk mencocokkan saat kolomidpada tabelmanagersbersesuaian dengan kolommgrpada tabelemployees. - Urutkan pernyataan berdasarkan kolom
namedari tabelmanagers. - Eksekusi pernyataan dan simpan semua hasil. Kode ini sudah dituliskan. Kirim jawaban untuk mencetak nama para manajer dan seluruh karyawan mereka.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Make an alias of the employees table: managers
managers = ____
# Build a query to select names of managers and their employees: stmt
stmt = select(
[managers.columns.name.label('manager'),
____]
)
# Match managers id with employees mgr: stmt_matched
stmt_matched = stmt.where(managers.columns.id == ____)
# Order the statement by the managers name: stmt_ordered
stmt_ordered = stmt_matched.order_by(____)
# Execute statement: results
results = connection.execute(stmt_ordered).fetchall()
# Print records
for record in results:
print(record)