SELECT SQL_CALC_FOUND_ROWS t1.user_id, t1.friend_id, ta2.username as username, ta3.username as friend_name
FROM t1
INNER JOIN another_db.t2 ta2 ON ta2.id = t1.user_id
INNER JOIN another_db.t2 ta3 ON ta3.id = t1.friend_id
ORDER BY ta2.username DESC LIMIT 45, 100;
SELECT FOUND_ROWS();
- выдает 428, что есть правильно.
SELECT SQL_CALC_FOUND_ROWS t1.user_id, t1.friend_id, ta2.username as username, ta3.username as friend_name
FROM t1
INNER JOIN another_db.t2 ta2 ON ta2.id = t1.user_id
INNER JOIN another_db.t2 ta3 ON ta3.id = t1.friend_id
ORDER BY ta2.username DESC LIMIT 46, 100;
SELECT FOUND_ROWS();
- выдает 146 О_о, что неправильно.
Заметил что если делать сортировку по полям из таблицы t1 такой проблемы не возникает. Также проблема решается если сделать
GROUP BY t1.user_id, t1.friend_id
Вопрос: почему так? Я чего-то не понимаю в этой жизни?