У меня есть такая структура данных:
Table One
______________
| id | name |
|------------|
| 1 | bob |
| 2 | jane |
--------------
Table Two
_________________________________
| id | table_1_id | date |
|-------------------------------|
| 1 | 1 | 2000-01-01 |
| 2 | 1 | 2000-01-31 |
| 4 | 1 | 2000-02-28 |
| 5 | 1 | 2000-03-03 |
| 6 | 2 | 2000-01-03 |
| 7 | 2 | 2000-01-05 |
---------------------------------
Я пытаюсь вернуть только самые высокие (самые последние) даты из таблицы 2, которые соответствуют идентификатору пользовательского боба из таблицы 1.
Например, в приведенном выше примере я хочу вернуть это из моего запроса
2000-01-31
2000-02-28
2000-03-03
Сейчас я пытаюсь
SELECT MAX(date)
FROM table_2
INNER JOIN table_1 ON table_1.id = table_2.table_1_id
WHERE table_1.name = "bob"
GROUP BY YEAR(date), MONTH(date)
ORDER BY date DESC
Кажется, это работает для меня локально, но в работе это не получается, потому что ONLY_FULL_GROUP_BY включен.
Я не знаюЯ не хочу отключать ONLY_FULL_GROUP_BY, так как я бы лучше узнал, как правильно построить этот запрос, но я не могу понять, как правильно обращаться с YEAR / MONTH и MAX без получения ошибки «not in GROUP BY»..
Буду признателен за любую помощь!