MySQLで複数のテーブルを結合してデータを取得する方法
MySQLを使用してデータベースを構築する場合、複数のテーブルにデータが分散している場合があります。このとき、これらのテーブルを結合して必要なデータを取得する方法を理解することは重要です。以下に、MySQLとそのライブラリを使用して複数のテーブルを結合するサンプルコードを示します。
サンプルデータベースの構造
まず、サンプルのデータベース構造を考えてみましょう。例として、以下の2つのテーブルがあると仮定します。
users テーブル
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);
INSERT INTO users (id, name, email) VALUES
(1, 'John Doe', '[email protected]'),
(2, 'Jane Smith', '[email protected]');
orders テーブル
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
product_name VARCHAR(255),
amount DECIMAL(10, 2)
);
INSERT INTO orders (order_id, user_id, product_name, amount) VALUES
(101, 1, 'Product A', 50.00),
(102, 1, 'Product B', 30.00),
(103, 2, 'Product C', 75.50);
テーブルの結合クエリ
次に、上記のテーブルを結合して、ユーザーの名前とその注文の情報を取得するクエリを示します。
SELECT users.name, orders.order_id, orders.product_name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
このクエリは、users
テーブルと orders
テーブルを user_id
で結合し、ユーザーの名前と注文の情報を取得します。
このように、MySQLを使用して複数のテーブルを結合することで、関連するデータを一つのクエリで取得することができます。