Zacznij terazZacznij za darmo

Złączenia (joins)

Jeśli nie wybierasz kolumn z obu tabel jednocześnie lub między tabelami nie ma zdefiniowanej relacji, nadal możesz użyć metody .join() na tabeli, aby połączyć ją z inną tabelą i uzyskać dodatkowe dane potrzebne w zapytaniu. Metoda join() przyjmuje jako pierwszy argument obiekt tabeli, którą chcesz dołączyć, a jako drugi – warunek określający, jak tabele są ze sobą powiązane. Na końcu używasz metody .select_from() na instrukcji select, aby opakować klauzulę złączenia. Na przykład w filmie Jason wykonał poniższy kod, aby złączyć tabelę census z tabelą state_fact tak, by kolumna state tabeli census odpowiadała kolumnie name tabeli state_fact.

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

To ćwiczenie jest częścią kursu

Wprowadzenie do baz danych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zbuduj instrukcję, która wybiera WSZYSTKIE kolumny z tabel census i state_fact. Aby na przykład wybrać WSZYSTKIE kolumny z tabel employees i sales, użyj stmt = select([employees, sales]).
  • Dołącz select_from do stmt, aby złączyć tabelę census z tabelą state_fact po kolumnie state w tabeli census i kolumnie name w tabeli state_fact.
  • Wykonaj instrukcję, aby pobrać pierwszy wynik i zapisz go jako result. Ten kod jest już napisany.
  • Prześlij odpowiedź, aby przejść przez klucze obiektu result i wyświetlić każdy klucz wraz z jego wartością!

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod