mysql Ver 14.14. Распределите 5.5.60, для debian-linux-gnu (x86_64), используя readline 6.3
У меня есть одна таблица "mytable" с 12500 записями и с этими полями
При выполнении консультации:
select max(x_id), y_id, fieldX, fieldY
from mytable;
и, например, возвращение
x_id | y_id | fieldX | fieldY
12121 | 111 | textX | testY
но при выполнении:
select y_id, fieldX, fieldY
from mytable
where x_id = 12121;
вернуть
y_id | fieldX | fieldY
232 | textX | textY
y_id не совпадает.
Зачем?
Если вы хотите использовать последнюю строку, вы должны сделать
SELECT *
FROM mytable
ORDER BY x_id DESC
LIMIT 1
Проблема с вашим запросом заключается в том, что вы выбираете значение MAX из поля, а другое - случайные значения и не обязательно связаны с строкой, где это максимальное значение.
использование функции агрегации без группы может привести к непредсказуемому результату для столбца, не участвующего в функции агрегации и не упомянутого в группе.
вы можете использовать или функцию агрегации или порядок
select max(x_id), max(y_id), max(fieldX), max(fieldY)
from mytable;
select max(x_id), y_id, fieldX, fieldY
from mytable
group by y_id, fieldX, fieldY ;