始める無料で始める

定義済みリレーションシップによる自動結合

すでにリレーションシップが定義されている2つのテーブルがある場合、各テーブルから取得したい列を select ステートメントに追加するだけで、その関係を自動的に利用できます。Jason が次のクエリを作成したことを思い出してください。

stmt = select([census.columns.pop2008, state_fact.columns.abbreviation])

これは、census テーブルと state_fact テーブルを結合し、前者から pop2008 列、後者から abbreviation 列を選択するためのものです。このとき、censusstate_fact には事前に定義されたリレーションシップがありました。前者の state 列が後者の name 列に対応していました。

この演習では、同じ定義済みの関係を使って、pop2000 列と abbreviation 列を選択します!

この演習はコースの一部です

Pythonで学ぶデータベース入門

コースを見る

演習の手順

  • censusstate_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))
コードを編集して実行