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クエリで3つ以上のテーブルを結合するために必要なものは何ですか?
2. 同じ名前のカラムを持つ複数のテーブルを結合する際、曖昧さを回避する方法は何ですか?
3. employees、assignments、projectsを結合し、各従業員の名前と割り当てられたプロジェクトを表示するクエリの空欄を埋めてください。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください