Table
projects
7 columns · 1 foreign keys · referenced by 1 tables
Columns
| # | Name | Type | Key |
|---|---|---|---|
| 01 | project_id | SERIAL | PK |
| 02 | name | VARCHAR(200) | |
| 03 | dept_id | INT | FK |
| 04 | start_date | DATE | |
| 05 | end_date | DATE | |
| 06 | budget | NUMERIC | |
| 07 | status | VARCHAR(30) |
Outgoing references
- dept_id — references another table
Referenced by
Example queries against this table
- CROSS JOIN: all employee-project combinationsSQL
SELECT e.first_name, e.last_name, p.name AS project FROM employees e CROSS JOIN projects p LIMIT 50; - Find employees assigned to projects with JOINSQL
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; - Find departments with their total project budgetSQL
SELECT d.dept_name, d.budget AS dept_budget, COUNT(p.project_id) AS project_count, COALESCE(SUM(p.budget), 0) AS total_project_budget FROM departments d LEFT JOIN projects p ON d.dept_id = p.dept_id GROUP BY d.dept_id, d.dept_name, d.budget ORDER BY total_project_budget DESC; - Employees NOT assigned to any project (anti-join)SQL
SELECT e.first_name, e.last_name, e.job_title FROM employees e LEFT JOIN project_assignments pa ON e.emp_id = pa.emp_id WHERE pa.assign_id IS NULL; -- Unmatched = no projects