Les tables temporaires sont souvent utiles lorsque vous avez un SELECT assez compliqué que vous souhaitez effectuer, puis effectuez un tas de requêtes dessus...
Vous pouvez faire quelque chose comme :
CREATE TEMPORARY TABLE myTopCustomers
SELECT customers.*,count(*) num from customers join purchases using(customerID)
join items using(itemID) GROUP BY customers.ID HAVING num > 10;
Et puis faites un tas de requêtes contre myTopCustomers sans avoir à faire les jointures aux achats et aux articles sur chaque requête. Ensuite, lorsque votre application n'a plus besoin du descripteur de base de données, aucun nettoyage n'est nécessaire.
Presque toujours, vous verrez des tables temporaires utilisées pour des tables dérivées dont la création était coûteuse.