Хорошо, вот в чем проблема.В настоящее время я использую инфраструктуру Symfony для разработки веб-приложения.Я использую MySQL в качестве бэкэнда, но хочу сохранить свои запросы в их формате доктрины, чтобы избежать каких-либо проблем, если мне когда-либо понадобится изменить базы данных.
В одном разделе веб-приложения я ищу последнийкомментарий, связанный любым отдельным пользователем, отсортированный по дате.В один и тот же день и время может быть несколько комментариев от всех пользователей, но этот запрос должен захватывать только последний комментарий на основе даты.
comments table
-----------------------------------------------------------------
| comment_id | user_id | comment | date_time |
-----------------------------------------------------------------
| 1 | 2 | Test_1 | 2010-01-01 00:00:00 |
| 2 | 2 | Test_2 | 2010-02-01 00:00:00 |
| 3 | 2 | Test_3 | 2010-03-01 00:00:00 |
| 4 | 4 | Test_4 | 2010-04-01 00:00:00 |
| 5 | 4 | Test_5 | 2010-05-01 00:00:00 |
| 6 | 4 | Test_6 | 2010-06-01 00:00:00 |
| 7 | 3 | Test_7 | 2010-07-01 00:00:00 |
| 8 | 2 | Test_8 | 2010-08-01 00:00:00 |
| 9 | 3 | Test_9 | 2010-09-01 00:00:00 |
-----------------------------------------------------------------
Выше приведен пример таблицы.Запущенный мной запрос должен вернуть данные следующим образом.
-----------------------------------------------------------------
| comment_id | user_id | comment | date_time |
-----------------------------------------------------------------
| 9 | 3 | Test_9 | 2010-09-01 00:00:00 |
| 8 | 2 | Test_8 | 2010-08-01 00:00:00 |
| 6 | 4 | Test_6 | 2010-06-01 00:00:00 |
-----------------------------------------------------------------
Наименьшее количество подзапросов, очевидно, будет лучше.Вполне возможно, что date_time может быть ниже для будущего комментария пользователя.
Это кажется простым, но оказывается довольно сложным ...