私の意見では、まずフィルタリングを適用し、テーブルの1つを修正してから、結合を適用します。
select t.id, new.id from (select t1.id from temp t1, new_temp t2 where t1.id > t2.id)t join new_temp new on (t.id = new.id);
これは動作するはずです。私は私の心に来たテストケースでテストしました。
次のようなアプローチが考えられますが、うまくいきません。
1.適用される場合加わると
select t1.id, t2.id from temp t1 join new_temp t2 on (t1.id = t2.id) where t1.id < t2.id
=>このクエリはない行が出力に存在しますので、第1および結合条件を実行します。 あなたが実行することにより、実行フローを確認することができます。すでに適用されて参加して後にここで
select * from (select t1.id as t1id, t2.id as t2id from temp t1 join new_temp t2 on (t1.id = t2.id))new_table where t1id < t2id;
に参加ところ
explain select t1.id, t2.id from temp t1 join new_temp t2 on (t1.id = t2.id) where t1.id < t2.id;
2.適用、毎回のt1idとt2idは等しくなります。
の場合は、両方のテーブルから1つの共通キーが必要であり、このテーブルに参加してからこの条件を適用することができます。 –