Mysql
 sql >> Base de données >  >> RDS >> Mysql

Joindre le résultat de deux requêtes mysql

Compléter la réponse de @Microgen... Puisque vos deux premières sélections fonctionnent déjà comme vous le souhaitez, vous pouvez conserver ces résultats dans des tables temporaires :

create temporary table tmp1 as <your first select>;
alter table tmp1 add <some index to accelerate your join later>;
create temporary table tmp2 as <your second select>;
alter table tmp2 add <some index to accelerate your join later>;

Ensuite, vous pouvez appliquer une jointure simple pour obtenir votre résultat final :

select tmp1.id, tmp1.name, tmp1.address, tmp2.occupation
    from tmp1 inner join tmp2 using (id)
    order by tmp1.id;

Une autre façon de le faire est d'utiliser VIEW , mais comme l'indexation n'est pas ce qu'ils ont de mieux, je les éviterais, surtout lorsque vos deux premiers select sont aussi complexes.