Začněte nyníZačněte zdarma

Joiny

Pokud nevybíráš sloupce z obou tabulek nebo mezi nimi není definovaný vztah, můžeš přesto použít metodu .join() na tabulce a spojit ji s jinou tabulkou, aby ses dostal/a k dalším datům souvisejícím s tvým dotazem. Metoda join() přijímá jako první argument objekt tabulky, kterou chceš připojit, a jako druhý argument podmínku určující, jak spolu tabulky souvisí. Výsledný join pak zabalíš pomocí metody .select_from() volanou na příkazu select. Například ve videu Jason spustil následující kód pro spojení tabulky census s tabulkou state_fact tak, aby sloupec state v tabulce census odpovídal sloupci name v tabulce state_fact.

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

Toto cvičení je součástí kurzu

Introduction to Databases in Python

Zobrazit kurz

Pokyny k cvičení

  • Sestav příkaz, který vybere VŠECHNY sloupce z tabulek census a state_fact. Pokud bys chtěl/a vybrat VŠECHNY sloupce ze dvou tabulek employees a sales, použil/a bys například stmt = select([employees, sales]).
  • Přidej k stmt klauzuli select_from, která spojí tabulku census s tabulkou state_fact — podle sloupce state v tabulce census a sloupce name v tabulce state_fact.
  • Spusť příkaz, získej první výsledek a ulož ho jako result. Tento kód je už napsaný.
  • Odešli odpověď, aby se prošly klíče objektu result a vytiskl se každý klíč i jeho hodnota!

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód