У меня есть две связанные таблицы:
publications
:
| id | name |
| 1 | Test |
| 2 | Example |
publication_dates
:
| id | publication_id | date |
| 1 | 1 | 2020-02-01 |
| 2 | 1 | 2020-02-10 |
| 3 | 1 | 2020-01-25 |
| 4 | 2 | 2020-01-10 |
| 5 | 2 | 2019-12-15 |
Теперь, например, я хотел бы получить все publications
, где первая дата publication_dates
после 2020-01-01
. Поэтому я попробовал следующее:
$publications = Publication::whereHas('dates', function($query) {
$query->whereRaw("MIN(date) > '2020-01-10'");
});
Но это возвращает следующую ошибку:
SQLSTATE [HY000]: Общая ошибка: 1111 Неправильное использование групповой функции
, который возвращается к MIN(date)
. Поэтому у меня остается вопрос, как мне получить все публикации с первой датой после 2020-01-01
или любой другой указанной c датой. Из приведенного выше примера я ожидаю получить публикацию с идентификатором 1
, поскольку первая дата 2
равна 2019-12-15