これは、2つのサブクエリと一時テーブルを使用して機能する私のクエリです。
select visit.pid, visit.pidvnum, visit.hpv16, visit.qc_hst
FROM visit,
(select distinct x.pid from
(select pid from visit where visit.qc_hst = 1) x,
(select pid from visit where visit.hpv16 = 1) y
where x.pid = y.pid) as subtbl
where visit.pid = subtbl.pid
AND (visit.qc_hst = 1 OR visit.hpv16 =1);
このクエリを書き直して、サブクエリの一方または両方を削除する方法はありますか?同じ2つのサブクエリでIN句も使用しましたが、それはさらに悪いことです。qc_hstやhpv16のようなフィールドは数十個あるため、インデックスを作成できません。これらのフィールドのいずれかがクエリの一部である可能性があります。
これがsqlfiddleリンクです:http ://sqlfiddle.com/#!2/68bd6/6/0
どうもありがとう-私は本当にこれの壁に頭をぶつけています...