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: Quais fábricas têm trabalhadores nos departamentos de 'engenharia' e 'controle de qualidade'?
 ###Tabelas: 
CREATE TABLE factories (factory_id INT, factory_name VARCHAR(20)); INSERT INTO factories VALUES (1, 'Factory X'), (2, 'Factory Y'), (3, 'Factory Z'); CREATE TABLE departments (department_id INT, department VARCHAR(20)); INSERT INTO departments VALUES (1, 'engineering'), (2, 'quality control'), (3, 'maintenance'); CREATE TABLE workers (worker_id INT, factory_id INT, department_id INT); INSERT INTO workers VALUES (1, 1, 1), (2, 1, 2), (3, 2, 1), (4, 2, 3), (5, 3, 2), (6, 3, 3);
SELECT f.factory_name FROM workers w INNER JOIN factories f ON w.factory_id = f.factory_id INNER JOIN departments d ON w.department_id = d.department_id WHERE d.department IN ('engineering', 'quality control') GROUP BY f.factory_name HAVING COUNT(DISTINCT d.department_id) = 2;