MySQLデータベースで複数のテーブルを結合することは、複雑なクエリを実行する上で重要です。例として、users
テーブルとorders
テーブルを結合して、各ユーザーの注文情報を取得する方法を説明します。
まず、以下はusers
テーブルとorders
テーブルの簡略化されたスキーマです。
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE,
total_amount DECIMAL(10, 2),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
ここで、users
テーブルとorders
テーブルをuser_id
をキーとして結合するクエリを以下に示します。
SELECT
users.user_id,
users.username,
orders.order_id,
orders.order_date,
orders.total_amount
FROM
users
JOIN
orders ON users.user_id = orders.user_id;
このクエリでは、users
テーブルとorders
テーブルをuser_id
を基準にして結合しています。結果として、各ユーザーとその関連する注文情報が表示されます。
この例では、JOIN
キーワードを使用していますが、実際のプロジェクトでは左結合 (LEFT JOIN
) や右結合 (RIGHT JOIN
) を使用して、結合の仕方を調整することもできます。データベースのスキーマと要件に応じて、適切な結合方法を選択しましょう。