BaşlayınÜcretsiz başlayın

Join'ler

Eğer iki tablodan da sütun seçmiyorsan ya da tablolar arasında tanımlı bir ilişki yoksa, yine de bir tablo üzerinde .join() metodunu kullanarak onu başka bir tabloyla birleştirebilir ve sorgunla ilgili ek veriler alabilirsin. join() ilk argüman olarak birleştirmek istediğin tablo nesnesini, ikinci argüman olarak ise tabloların nasıl ilişkili olduğunu belirten koşulu alır. Son olarak, select ifadesi üzerinde .select_from() metodunu kullanarak join ifadesini sarmalarsın. Örneğin, videoda Jason, census tablosunu state_fact tablosuyla, census tablosundaki state sütunu state_fact tablosundaki name sütununa karşılık gelecek şekilde aşağıdaki kodla birleştirdi:

stmt = stmt.select_from(
    census.join(
        state_fact, census.columns.state == 
        state_fact.columns.name)

Bu egzersiz, kursun bir parçasıdır

Python ile Veritabanlarına Giriş

Kursa Göz Atın

Egzersiz talimatları

  • census ve state_fact tablolarındaki TÜM sütunları seçecek bir ifade oluştur. Örneğin iki tablo employees ve sales olsaydı, tüm sütunları seçmek için stmt = select([employees, sales]) kullanırdın.
  • stmt ifadesine bir select_from ekleyerek census tablosunu, census içindeki state sütunu ile state_fact içindeki name sütununa göre state_fact tablosuna join et.
  • İfadeyi çalıştırarak ilk sonucu al ve result olarak kaydet. Bu kod zaten yazıldı.
  • Sonuç nesnesinin anahtarları üzerinde döngü kurup her birinin anahtar ve değerini yazdırmak için yanıtı gönder!

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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))
Kodu Düzenle ve Çalıştır