始める無料で始める

SQL の真価はテーブル間のリレーションシップにあり:INNER JOIN

ここでは、初めての INNER JOIN を実行しましょう。おなじみの SQLite データベース Chinook.sqlite を使います。Album テーブルの各レコードについて TitleArtistName を取得します。後者のデータは Artist に含まれるため、この 2 つのテーブルを ArtistID 列で INNER JOIN する必要があります。

Northwind データベースの OrdersCustomers テーブルを INNER JOIN するために動画内で実行された SQL クエリは以下のとおりです。

"SELECT OrderID, CompanyName FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID"

必要なパッケージのインポートとエンジンの作成には、以下のコードがすでに実行されています。

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:///Chinook.sqlite')

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

Python でのデータインポート入門

コースを見る

演習の手順

  • 次のクエリの結果を rs に代入してください。すべてのレコードを選択し、レコードのTitle と各レコードのアーティストの Nameをテーブル AlbumArtist から 抽出する。そのために、INNER JOIN を両テーブルの ArtistID 列に対して実行しましょう。
  • pd.DataFrame() の呼び出し内で、fetchall() メソッドを rs に適用し、rs のすべてのレコードを取得してください。取得したデータは DataFrame df に格納します。
  • DataFrame の列名を、テーブルの列名に対応する名前に設定してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Open engine in context manager
# Perform query and save results to DataFrame: df
with engine.connect() as con:
    ____
    ____
    ____

# Print head of DataFrame df
print(df.head())
コードを編集して実行