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: Encontrar pratos que contenham tanto tomates quanto cebolas como ingredientes.
 ###Tabelas: 
CREATE TABLE ingredients (id INT, name VARCHAR(255)); INSERT INTO ingredients (id, name) VALUES (1, 'Tomatoes'), (2, 'Onions'), (3, 'Garlic'), (4, 'Cheese'), (5, 'Tofu'), (6, 'Chicken'), (7, 'Beef'), (8, 'Tomato Sauce'), (9, 'Onion Rings'); CREATE TABLE dish_ingredients (dish_id INT, ingredient_id INT); INSERT INTO dish_ingredients (dish_id, ingredient_id) VALUES (1, 1), (1, 2), (1, 3), (1, 8), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 6), (4, 2), (4, 9), (5, 3), (5, 4), (5, 7);
SELECT dish_ingredients.dish_id FROM dish_ingredients INNER JOIN ingredients ON dish_ingredients.ingredient_id = ingredients.id WHERE ingredients.name IN ('Tomatoes', 'Onions') GROUP BY dish_ingredients.dish_id HAVING COUNT(DISTINCT ingredients.name) = 2;