SELECT * FROM (
SELECT A.sid,(Y-W) AS dis1,(Z-X) AS dis2, W, Y, X, Z, qg1, qg3 FROM (
(SELECT qgram.sid, qgram.i AS W, qgram.qg as qg1, query.i AS X, query.qg as qg2 FROM qgram, query, p3pairs WHERE (qgram.qg = p3pairs.qg1 AND query.qg = p3pairs.qg2)) AS A
INNER JOIN
(SELECT qgram.sid, qgram.i AS Y, qgram.qg as qg3, query.i AS Z, query.qg as qg4 FROM qgram, query, p3pairs WHERE (qgram.qg = p3pairs.qg2 AND query.qg = p3pairs.qg1)) AS B
ON A.sid=B.sid AND (Y-W)>2 AND (Y-W)<43)) AS P
WHERE dis1=dis2;