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 doadores e voluntários são de uma cidade e faixa etária específicas?
 ###Tabelas: 
CREATE TABLE donors (id INT, name VARCHAR, age INT, donation_amount DECIMAL, donation_date DATE, donor_city VARCHAR, donor_program VARCHAR); INSERT INTO donors (id, name, age, donation_amount, donation_date, donor_city, donor_program) VALUES (101, 'Jamila Davis', 35, '500', '2021-01-01', 'New York', 'Arts & Culture'), (102, 'Ricardo Silva', 40, '300', '2021-02-01', 'Los Angeles', 'Sports'), (103, 'Xiao Liu', 50, '800', '2021-03-01', 'Toronto', 'Arts & Culture'), (104, 'Kim Lee', 30, '200', '2021-01-01', 'Sydney', 'Education'); CREATE TABLE volunteers (id INT, name VARCHAR, age INT, program VARCHAR, volunteer_city VARCHAR); INSERT INTO volunteers (id, name, age, program, volunteer_city) VALUES (301, 'Nia White', 25, 'Arts & Culture', 'New York'), (302, 'Pedro Alvarez', 35, 'Sports', 'Los Angeles'), (303, 'Li Wang', 45, 'Arts & Culture', 'Toronto'), (304, 'Ji Yu', 20, 'Education', 'Sydney'), (305, 'Fatima Adebayo', 35, 'Arts & Culture', 'New York'); CREATE TABLE age_groups (id INT, min_age INT, max_age INT); INSERT INTO age_groups (id, min_age, max_age) VALUES (1, 0, 18), (2, 19, 35), (3, 36, 50), (4, 51, 100);
SELECT d.name as donor_name, v.name as volunteer_name FROM donors d INNER JOIN volunteers v ON d.age BETWEEN (SELECT min_age FROM age_groups WHERE id = 3) AND (SELECT max_age FROM age_groups WHERE id = 3) WHERE d.donor_city = 'New York' AND v.volunteer_city = 'New York';