Uzupełnianie odpowiedzi @Microgen... Ponieważ masz już dwa pierwsze zaznaczenia pracujące tak, jak chcesz, możesz zachować te wyniki w tabelach tymczasowych:
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>;
Następnie możesz zastosować proste sprzężenie, aby uzyskać ostateczny wynik:
select tmp1.id, tmp1.name, tmp1.address, tmp2.occupation
from tmp1 inner join tmp2 using (id)
order by tmp1.id;
Innym sposobem na to jest użycie VIEW
, ale ponieważ indeksowanie nie jest najlepszą rzeczą, jaką mają, unikałbym ich, szczególnie gdy twoje pierwsze dwa select
są równie złożone.