IntermediateJOINs (INNER, LEFT, RIGHT, FULL)

Find employees assigned to projects with JOIN

The query

SQL
SELECT
  e.first_name,
  e.last_name,
  p.name AS project_name,
  pa.role,
  pa.hours,
  d.dept_name
FROM employees e
JOIN project_assignments pa ON e.emp_id = pa.emp_id
JOIN projects p ON pa.project_id = p.project_id
JOIN departments d ON e.dept_id = d.dept_id
ORDER BY p.name, e.last_name;
Tested against PostgreSQL 16

Note

Junction table (project_assignments) connects many-to-many relationship between employees and projects.

Tables referenced