@Microgenの回答を完了します...最初の2つの選択が希望どおりに機能しているので、それらの結果を一時テーブルに保持できます。
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>;
次に、単純な結合を適用して最終結果を得ることができます:
select tmp1.id, tmp1.name, tmp1.address, tmp2.occupation
from tmp1 inner join tmp2 using (id)
order by tmp1.id;
これを行う別の方法は、VIEW
を使用することです。 、しかし、インデックス作成は彼らが持っている最良のものではないので、特に最初の2つのselect
の場合は、それらを避けます。 複雑です。