Я пытаюсь получить столбцы таблицы, получая сумму другой связанной таблицы (я использую базу данных MySQL). Таблицы являются преимуществами и конверсиями, преимущества имеют столбец conversionID
. Все они связаны с моделями. Сначала я пытался добиться этого с помощью метода красноречив, но я не мог добиться успеха, так что я придумал этот Fluent метод, который работает отлично:Laravel 3: Присоединение и получение суммы двух таблиц, есть ли лучший способ?
DB::table('conversions')
->join('advantages','advantages.conversionID','=','conversions.id')
->where('conversions.used','=',0)
->group_by('conversions.id')
->get(array(
'conversions.*',
DB::raw('SUM(advantages.point) as totaladvantage')
))
Я думаю запрос описывает, как столбцы и то, что я хочу достигать.
Так что мой вопрос: есть ли более эффективный способ достичь этого? Использование DB::raw
для этого показалось мне странным, и метод sum()
возвращает сумму столбцов. Это почти единственное место, где я написал как свободный, так и сырой запрос в моем проекте, так что это заставило меня подумать, если я что-то упустил.
Заранее спасибо
'суммы (..)' немедленно возвращает сумма. Похоже, что после этого невозможно вызвать 'get'. –
изменил ответ сейчас. Удалены, чтобы получить и заменить –