3つ以上のテーブルの結合
メニューを表示するにはスワイプしてください
実際のデータベース運用では、2つ以上のテーブルにまたがる情報を取得する必要がよくあります。複数テーブルの結合を使用すると、3つ以上の関連テーブルからデータを1つのクエリで結合でき、包括的なレポートや分析に不可欠です。例えば、従業員がどのプロジェクトに割り当てられているかを確認し、さらにそのプロジェクトを担当する部門の詳細も含めたい場合があります。この手法は、部門ごとの従業員の関与状況を分析したり、全社的なプロジェクト割り当てを追跡したりするビジネスレポートで一般的に利用されます。
1234567SELECT employees.name AS employee_name, projects.project_name FROM employees INNER JOIN assignments ON employees.employee_id = assignments.employee_id INNER JOIN projects ON assignments.project_id = projects.project_id;
このクエリは、employees、assignments、projectsの3つのテーブルを結合し、従業員がどのプロジェクトに割り当てられているかを表示しています。まず、employeesとassignmentsをemployee_id列で結合し、各従業員とその割り当てを関連付けます。次に、assignmentsとprojectsをproject_idで結合し、各割り当てと対応するプロジェクトを関連付けます。このようにINNER JOINを連鎖させることで、複数のテーブル間のリレーションをたどり、必要な結合データを取得できます。
さらに、各プロジェクトが属する部門など、より多くの情報を含めたい場合は、4つ目のテーブルまで結合を拡張できます。次のクエリでは、employees、assignments、projects、departmentsを結合し、従業員名、プロジェクト名、部門名を1つの結果として表示します。
123456789SELECT employees.name AS employee_name, projects.project_name, departments.department_name FROM employees INNER JOIN assignments ON employees.employee_id = assignments.employee_id INNER JOIN projects ON assignments.project_id = projects.project_id INNER JOIN departments ON projects.department_id = departments.department_id;
1. 1つのSQLクエリで2つ以上のテーブルを結合するために必要なものは何ですか?
2. 同じ名前のカラムを持つ複数のテーブルを結合する際、曖昧さを回避する方法は何ですか?
3. employees、assignments、projectsを結合し、各従業員の名前と割り当てられたプロジェクトを表示するクエリの空欄を埋めてください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 7
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 7