It is the query for better understanding it (the query is the same):
prepare st1 from 'SELECT alias1 . `pk` AS field1
FROM
D AS alias1 LEFT OUTER JOIN
D AS alias2 ON alias1 . `col_int_key` = alias2 . `pk` RIGHT OUTER JOIN
EE AS alias3 LEFT JOIN
G AS alias4 ON alias3 . `col_varchar_10_latin1_key` = alias4 . `col_varchar_10_utf8` LEFT JOIN
D AS alias5 ON alias3 . `col_varchar_10_utf8_key` = alias5 . `col_varchar_10_latin1` ON alias2 . `col_int_key` = alias3 . `pk` LEFT JOIN
H AS alias6 ON alias5 . `col_int` = alias6 . `col_int_key` LEFT JOIN
BB AS alias7 RIGHT JOIN
CC AS alias8 ON alias7 . `col_int_key` = alias8 . `col_int_key` LEFT JOIN
GG AS alias9 ON alias7 . `col_varchar_1024_latin1` = alias9 . `col_varchar_1024_utf8_key` ON alias4 . `col_varchar_1024_latin1` = alias8 . `col_varchar_1024_utf8`
WHERE alias9 . `col_int_key` >= alias7 . `pk`
GROUP BY field1
HAVING field1 > 6
ORDER BY field1
LIMIT 2 OFFSET 3';
It is the query for better understanding it (the query is the same):
prepare st1 from 'SELECT alias1 . `pk` AS field1 10_latin1_ key` = alias4 . `col_varchar_ 10_utf8` LEFT JOIN 10_utf8_ key` = alias5 . `col_varchar_ 10_latin1` ON alias2 . `col_int_key` = alias3 . `pk` LEFT JOIN 1024_latin1` = alias9 . `col_varchar_ 1024_utf8_ key` ON alias4 . `col_varchar_ 1024_latin1` = alias8 . `col_varchar_ 1024_utf8`
FROM
D AS alias1 LEFT OUTER JOIN
D AS alias2 ON alias1 . `col_int_key` = alias2 . `pk` RIGHT OUTER JOIN
EE AS alias3 LEFT JOIN
G AS alias4 ON alias3 . `col_varchar_
D AS alias5 ON alias3 . `col_varchar_
H AS alias6 ON alias5 . `col_int` = alias6 . `col_int_key` LEFT JOIN
BB AS alias7 RIGHT JOIN
CC AS alias8 ON alias7 . `col_int_key` = alias8 . `col_int_key` LEFT JOIN
GG AS alias9 ON alias7 . `col_varchar_
WHERE alias9 . `col_int_key` >= alias7 . `pk`
GROUP BY field1
HAVING field1 > 6
ORDER BY field1
LIMIT 2 OFFSET 3';