CLEAR SET TALK OFF CREATE CURSOR T1 (id I DEFAULT RECNO()) CREATE CURSOR T2 (fid I DEFAULT T1.id,condition I DEFAULT RAND()*100) FOR K=1 TO 10 APPEND BLANK IN T1 FOR j=1 TO 500 APPEND BLANK IN T2 NEXT NEXT SYS(3054,11) tz=SECONDS() SELECT T1.id, T2.condition FROM T1 ; JOIN T2 ON T2.fid =T1.id ; JOIN T2 T3 ON T3.fid =T1.id ; WHERE T2.condition>90 AND T3.condition<10 ; INTO CURSOR dummyWhere ? SECONDS()-tz tz=SECONDS() SELECT T1.id, T2.condition FROM T1 ; JOIN T2 ON T2.fid =T1.id AND T2.condition>90 ; JOIN T2 T3 ON T3.fid =T1.id AND T3.condition<10 ; INTO CURSOR dummyJoin ? SECONDS()-tz tz=SECONDS() SELECT T1.id, T2.condition FROM T1 ; JOIN T2 ON T2.fid =T1.id ; JOIN T2 T3 ON T3.fid =T1.id ; HAVING T2.condition>90 AND T3.condition<10 ; INTO CURSOR dummyHaving ? SECONDS()-tzFabio