Хорошо, вот и проблема. В настоящее время я использую структуру 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 может быть ниже для будущего комментария пользователя.
Это кажется простым, но это оказывается довольно трудно ...
Я не знаю синтаксис доктрины, но я знаю, как сделать это в ANSI SQL который будет работать в большинстве баз данных. Будет ли это полезно для вас? Или, может быть, вы могли бы перевести его на учение самостоятельно, если вам это нужно в доктрине? –
И это типичная проблема «группового максимума» или «наибольшая для каждой группы», если вы хотите использовать поисковый запрос. –