SQLのINNER JOINと複数テーブルの結合の基本

URL
date
Oct 15, 2024
slug
sql-inner-join-and-multiple-tables
status
Published
tags
MySQL
INNER JOIN
summary
SQLのINNER JOINと複数テーブルの結合の基本
type
Post

SQLのINNER JOINと複数テーブルの結合の基本

データベースで関連するデータを1つの結果セットに統合する際、JOIN を使用することが非常に重要です。特に INNER JOIN は、共通するデータを持つテーブル同士を結合する際に頻繁に使用されます。この記事では、INNER JOIN を使用したテーブルの結合について解説します。

1. テーブル定義とデータ挿入

まず、users, addresses, cities の3つのテーブルを作成し、それぞれにデータを挿入します。

1.1 Cities テーブルにデータを挿入

以下のデータを挿入して、cities テーブルに都市名を追加します。

1.2 Addresses テーブルにデータを挿入

addresses テーブルに住所データを挿入し、都市ID (city_id) と関連付けます。

1.3 Users テーブルにデータを挿入

最後に、users テーブルにユーザー情報と住所ID (address_id) を関連付けて挿入します。

2. INNER JOIN の例

INNER JOIN を使用して、ユーザー情報と住所情報を結合したデータを取得します。
このクエリは、users, addresses, cities テーブルを INNER JOIN で結合し、ユーザーの名前、住所、都市名を取得します。各テーブルにはエイリアス (u, a, c) を設定して、列を明確に指定しています。

3. 複数の INNER JOIN を使用する例

都市名を含めた住所情報を取得するために、cities テーブルも追加して複数の INNER JOIN を実行します。
このクエリでは、users テーブルのデータを addresses テーブルと INNER JOIN し、さらに cities テーブルを結合しています。これにより、各ユーザーの都市名を含めた住所情報が取得できます。

別名(エイリアス)を使った例

エイリアスを使って、クエリを簡潔にし、列名をより明確にします。
この例では、列名に別名(エイリアス)を付けて、結果セットがよりわかりやすくなるようにしています。user_first_namecity_name といったわかりやすい列名を設定することで、結果の解釈がしやすくなります。
 
WHEREORDER BY を組み合わせたクエリも可能です。
 

4. INNER JOIN の使用例まとめ

INNER JOIN を使用することで、異なるテーブルからのデータを1つの結果セットに統合できます。たとえば、users, addresses, cities テーブルを結合することで、ユーザー情報と住所、都市情報を1つのクエリで取得できます。これにより、関連するデータを簡単に取得することができ、複雑なデータ構造をシンプルに扱えるようになります。

ポイント:

  • INNER JOIN は、関連するデータが両方のテーブルに存在する場合に使用されます。
  • エイリアスを使用してクエリを短くし、列名をわかりやすくすることができます。
  • 複数の INNER JOIN を使用することで、複数のテーブルからデータを結合できます。
このクエリの例を使って、JOIN の理解を深めてください。次に学ぶべきトピックとしては、LEFT JOINRIGHT JOIN などの他の結合方法もおすすめです。

© EndlessDev2016 2021 - 2025