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 5 principais doadores por valor total de doação e os programas correspondentes.
 ###Tabelas: 
CREATE TABLE donors (id INT, name VARCHAR, email VARCHAR); CREATE TABLE donations (id INT, donor_id INT, amount DECIMAL, payment_method VARCHAR, program_id INT); CREATE TABLE programs (id INT, name VARCHAR, budget DECIMAL);
SELECT donors.name as top_donors, SUM(donations.amount) as total_donation_amount, programs.name as program_name FROM donors JOIN donations ON donors.id = donations.donor_id JOIN programs ON donations.program_id = programs.id GROUP BY donors.id, programs.id ORDER BY total_donation_amount DESC, top_donors LIMIT 5;