Я пытаюсь создать представление базы данных с помощью миграции в Laravel 5.2, поскольку мне нужно передать довольно сложный запрос представлению. У меня есть модели / таблицы для лиг, команд, игроков и очков. Каждый из них имеет отношение hasMany / ownTo с предыдущим. Цель состоит в том, чтобы создать таблицу, в которой каждая строка представляет собой название лиги, сумму всех оставшихся очков для лиги и счетчик points.remnants, где значение points.remnants> 4.
Основное редактирование:
То, что у меня есть до сих пор,
DB::statement( 'CREATE VIEW wones AS
SELECT
leagues.name as name,
sum(points.remnants) as trem,
count(case when points.remnants < 4 then 1 end) as crem
FROM leauges
JOIN teams ON (teams.league_id = leagues.id)
JOIN players ON (players.team_id = teams.id)
JOIN points ON (points.player_id = players.id);
' );
Это не вызывает никаких ошибок, но возвращает только одну строку, и сумма указана для всех очков во всех лигах.
Я ищу создание таблицы, в которой есть строка для каждой лиги, в которой есть название лиги, общее количество оставшихся очков для этой лиги и общее количество очков, оставшееся менее 4 для каждой лиги.
Отмечено как решенное. См. Принятый ответ по большинству этих вопросов. Проблема с одной строкой заключалась в том, что я не использовал GROUP BY с count ().