Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Liste os nomes e horas totais de trabalho para os trabalhadores da construção civil que trabalharam tanto em projetos residenciais quanto comerciais.
 ###Tabelas: 
CREATE TABLE construction_workers (worker_id INT, name TEXT); CREATE TABLE project_types (project_id INT, project_type TEXT); CREATE TABLE worker_projects (worker_id INT, project_id INT, total_labor_hours INT); INSERT INTO construction_workers (worker_id, name) VALUES (1, 'John Doe'), (2, 'Jane Smith'), (3, 'Maria Garcia'); INSERT INTO project_types (project_id, project_type) VALUES (1, 'Residential'), (2, 'Commercial'), (3, 'Sustainable'); INSERT INTO worker_projects (worker_id, project_id, total_labor_hours) VALUES (1, 1, 500), (1, 2, 300), (2, 2, 600), (2, 3, 400), (3, 1, 700), (3, 3, 500);
SELECT construction_workers.name, SUM(worker_projects.total_labor_hours) FROM construction_workers INNER JOIN worker_projects ON construction_workers.worker_id = worker_projects.worker_id INNER JOIN project_types ON worker_projects.project_id = project_types.project_id WHERE project_types.project_type IN ('Residential', 'Commercial') GROUP BY construction_workers.name HAVING COUNT(DISTINCT project_types.project_type) = 2;