定義済みリレーションシップによる自動結合
すでにリレーションシップが定義されている2つのテーブルがある場合、各テーブルから取得したい列を select ステートメントに追加するだけで、その関係を自動的に利用できます。Jason が次のクエリを作成したことを思い出してください。
stmt = select([census.columns.pop2008, state_fact.columns.abbreviation])
これは、census テーブルと state_fact テーブルを結合し、前者から pop2008 列、後者から abbreviation 列を選択するためのものです。このとき、census と state_fact には事前に定義されたリレーションシップがありました。前者の state 列が後者の name 列に対応していました。
この演習では、同じ定義済みの関係を使って、pop2000 列と abbreviation 列を選択します!
この演習はコースの一部です
Pythonで学ぶデータベース入門
演習の手順
censusとstate_factテーブルを結合し、最初のテーブルからpop2000列、2つ目のテーブルからabbreviation列を選択するステートメントを作成してください。- ステートメントを実行して最初の結果を取得し、
resultとして保存します。 - 回答を送信して、結果オブジェクトのキーをループし、各キーと値を出力してください!
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Build a statement to join census and state_fact tables: stmt
stmt = select([____, ____])
# Execute the statement and get the first result: result
result = connection.execute(____).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))