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: Listar todos os doadores únicos que tenham doado para pelo menos dois programas diferentes.
 ###Tabelas: 
CREATE TABLE donor (id INT, name VARCHAR(255)); INSERT INTO donor (id, name) VALUES (1, 'John Doe'), (2, 'Jane Smith'), (3, 'Bob Johnson'); CREATE TABLE donation (id INT, donor_id INT, program_id INT); INSERT INTO donation (id, donor_id, program_id) VALUES (1, 1, 1), (2, 1, 2), (3, 2, 2), (4, 3, 1), (5, 3, 3);
SELECT d.name FROM donor d INNER JOIN (SELECT donor_id FROM donation GROUP BY donor_id HAVING COUNT(DISTINCT program_id) >= 2) dd ON d.id = dd.donor_id;