[Python 100日チャレンジ] Day 76 - SQL JOINでテーブルを結合する
SQLのJOINを使って、ユーザーと注文のように複数テーブルのデータを結合する方法を学びます。
[Python 100日チャレンジ] Day 76 - SQL JOINでテーブルを結合する
JOINが必要な理由
リレーショナルデータベースでは、データを複数のテーブルに分けて保存します。JOINを使うと、関連するテーブルをつなげて取得できます。
1
2
3
SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
主キーと外部キー
users.idのように行を識別する値を主キーと呼びます。orders.user_idのように別テーブルを参照する値は外部キーとして使われます。
LEFT JOIN
1
2
3
SELECT users.name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
LEFT JOINは、左側のテーブルの行を残しながら結合します。注文がないユーザーも一覧に出したい場合に便利です。
JOIN結果をPythonで使う
1
2
3
4
5
6
7
8
cursor.execute("""
SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id
""")
for name, amount in cursor.fetchall():
print(name, amount)
今日のゴール
JOINを使うと、分けて保存したデータを必要な形で組み合わせられます。リレーショナルデータベースを理解するうえで、とても重要なSQLです。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
