Het antwoord van @Microgen voltooien... Aangezien u uw twee eerste selectie al hebt laten werken zoals u wilt, kunt u die resultaten in tijdelijke tabellen bewaren:
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>;
Vervolgens kunt u een eenvoudige join toepassen om uw eindresultaat te krijgen:
select tmp1.id, tmp1.name, tmp1.address, tmp2.occupation
from tmp1 inner join tmp2 using (id)
order by tmp1.id;
Een andere manier om dit te doen is door VIEW
. te gebruiken , maar aangezien de indexering niet het beste is wat ze hebben, zou ik ze vermijden, vooral wanneer je eerste twee select
zijn even complex.