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 merupakan bagian dari kursus
Pengantar Basis Data di Python
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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)