背景

MySQLデータベースで複数のテーブルが存在する場合、これらのテーブルを結合して一つのクエリでデータを取得することがあります。この記事では、複数のテーブルを結合してデータを取得する方法について説明します。

シナリオ

例として、users テーブルと orders テーブルがあり、ユーザーごとの注文情報を取得したいとします。

テーブル構造

users テーブル

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(255)
);

orders テーブル

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    product VARCHAR(255),
    amount DECIMAL(10, 2),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

クエリ

ユーザーごとの注文情報を取得するためのクエリを以下に示します。

SELECT users.id, users.name, orders.order_id, orders.product, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;

このクエリでは、users テーブルと orders テーブルを JOIN 句を使用して結合しています。ON 句では、users テーブルの id カラムと orders テーブルの user_id カラムを結合条件として指定しています。

結果

上記のクエリを実行すると、ユーザーごとの注文情報が取得できます。

+----+------+----------+---------+--------+
| id | name | order_id | product | amount |
+----+------+----------+---------+--------+
|  1 | John |        1 | Laptop  |  800.00|
|  1 | John |        2 | Mouse   |   20.00|
|  2 | Jane |        3 | Monitor |  500.00|
+----+------+----------+---------+--------+

このように、users テーブルと orders テーブルが結合され、ユーザーごとの注文情報が一つの結果セットに表示されます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です