DO BEGIN
RelevantTasks =
SELECT id, assignee, project
FROM tasks;
TasksWithAssignee =
SELECT rt.*,
assignee.firstname,
assignee.lastname
FROM :RelevantTasks AS rt
LEFT OUTER JOIN users AS assignee
ON rt.assignee = assignee.id;
TasksAssigneeProjects =
SELECT twa.*,
p.id AS projektid,
p.project_manager
FROM :TasksWithAssignee AS twa
LEFT OUTER JOIN projects AS p
ON twa.project = p.id;
ResultSet =
SELECT tap.*,
pm.firstname AS PL_firstname,
pm.lastname AS PL_surname
FROM :TasksAssigneeProjects AS tap
LEFT OUTER JOIN users AS pm
ON pm.id = tap.project_manager;
SELECT *
FROM :ResultSet;
END;
DO BEGIN
SELECT task.id,
task.assignee,
task.project,
assignee.firstname AS as_firstname,
assignee.lastname AS as_surname,
project.id AS p_id,
pm.id AS pl_id,
pm.firstname AS pm_firstname,
pm.lastname AS pm_lastname
FROM tasks AS task
LEFT OUTER JOIN users AS assignee
ON task.assignee = assignee.id
LEFT OUTER JOIN projects AS project
ON task.project = project.id
LEFT OUTER JOIN users AS pm
ON project.project_manager = pm.id ;
END;