Join
Jika Anda tidak memilih kolom dari kedua tabel atau kedua tabel tidak memiliki relasi yang didefinisikan, Anda tetap dapat menggunakan metode .join() pada sebuah tabel untuk menggabungkannya dengan tabel lain dan mendapatkan data tambahan yang terkait dengan kueri kita. join() menerima objek tabel yang ingin Anda gabungkan sebagai argumen pertama dan sebuah kondisi yang menunjukkan bagaimana tabel-tabel tersebut saling terkait sebagai argumen kedua. Terakhir, Anda menggunakan metode .select_from() pada pernyataan select untuk membungkus klausa join. Sebagai contoh, dalam video, Jason mengeksekusi kode berikut untuk menggabungkan tabel census dengan tabel state_fact sehingga kolom state pada tabel census sesuai dengan kolom name pada tabel state_fact.
stmt = stmt.select_from(
census.join(
state_fact, census.columns.state ==
state_fact.columns.name)
Latihan ini adalah bagian dari kursus
Pengantar Basis Data di Python
Petunjuk latihan
- Bangun sebuah pernyataan untuk memilih SEMUA kolom dari tabel
censusdanstate_fact. Untuk memilih SEMUA kolom dari dua tabelemployeesdansales, misalnya, Anda akan menggunakanstmt = select([employees, sales]). - Tambahkan
select_fromkestmtuntuk melakukan join tabelcensusdengan tabelstate_factberdasarkan kolomstatedicensusdan kolomnamedi tabelstate_fact. - Eksekusi pernyataan untuk mendapatkan hasil pertama dan simpan sebagai
result. Kode ini sudah disediakan. - Kirim jawaban untuk melakukan iterasi atas key dari objek hasil, lalu cetak setiap key dan nilainya!
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Build a statement to select the census and state_fact tables: stmt
stmt = select([____, ____])
# Add a select_from clause that wraps a join for the census and state_fact
# tables where the census state column and state_fact name column match
stmt_join = stmt.select_from(
____(____, census.columns.____ == state_fact.columns.____))
# Execute the statement and get the first result: result
result = connection.execute(stmt_join).first()
# Loop over the keys in the result object and print the key and value
for key in result.keys():
print(key, getattr(result, key))