5章複数のテーブルからデータを取得する
2章では、正規化と呼ばれるプロセスを通じて関連する概念をばらばらに分解する仕組みを確認しました。その最終的な結果として、person
とfavorite_food
の2つのテーブルが作成されました。しかし、住所氏名と好きな食べ物を1つのレポートにまとめたい場合は、これら2つのテーブルのデータを再び1つにまとめるメカニズムが必要です。このメカニズムを結合(join)と呼びます。本章では、最も単純で最もよく使われる内部結合(inner join)に焦点を合わせます。10 章では、さまざまな種類の結合を具体的に見ていきます。
5.1 結合とは何か
1つのテーブルに対するクエリは特に珍しくありませんが、ほとんどのクエリでは、2つ、3つ、あるいはそれ以上のテーブルが必要になります。具体的な例として、customer
テーブルとaddress
テーブルの定義を調べた後、両方のテーブルからデータを取得するクエリを定義してみましょう。
mysql> desc customer;
+-------------+-------------------+------+-----+-------------------+ | Field | Type | Null | Key | Default | +-------------+-------------------+------+-----+-------------------+ | customer_id | smallint unsigned | NO | PRI | NULL | | store_id | tinyint unsigned | NO | MUL | NULL | | first_name | ...
Get 初めてのSQL 第3版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.