У меня есть следующие цены стол:Новые элементы и GROUP По выразительными
shop_id (int)
product_id (int)
price (float)
created (DateTime)
Каждый час cronjob проверяет магазины и вставляет новые записи (в текущих ценах) в эти прайс-таблицу.
Теперь я хочу показать новейшую цену продукта. У меня есть GROUP BY shop_id, потому что мне нужна только одна цена за магазин, но я хочу только самую новую запись (созданную).
Могу ли я решить эту проблему с помощью Eloquent Query-Builder или мне нужно использовать необработанный SQL? Возможно ли передать результат исходного SQL-запроса в модель, если столбцы одинаковы?
SQLSTATE [42000]: Ошибка синтаксиса или нарушение прав доступа: 1055 'xyz.prices.id' не в GROUP BY (SQL:. Выберите 'prices' *, MAX (created_at) в max_created_at от' цен 'group by' shop_id') – rakete
Эта ошибка связана с MySql. Вы можете проверить [это] (http://stackoverflow.com/questions/41199800/group-by-laravel/41200112#41200112) ответ для решения –
Hi Amit! Я могу выполнить его сейчас без ошибок, но DB :: raw() никак не влияет на результат. Я могу удалить его, ничего не изменится. Результатом является первая строка магазина, независимо от created_at. Не хватает ли где() или что-то в этом роде, где я проверяю, что created_at равен max_created_at? – rakete