かなり複雑なクエリをビューに渡す必要があるため、Laravel 5.2の移行でデータベースビューを作成しようとしています。私は、リーグ、チーム、選手、そしてポイントのためのモデル/テーブルを持っています。それぞれの前にhasMany/belongsTo関係があります。目標は、各行がリーグ名であり、リーグの残りのポイントの合計と、ポイントの数がカウントされるテーブルを作成することです。残額> points.remnants> 4の値。移行時のデータベースビューの作成laravel 5.2
メジャー編集:
私がこれまで持っていると、これはすべてのエラーをスローしませんが、それだけで1行を返し、合計はすべてのリーグですべての点についてです
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未満のテーブルがあるテーブルを作成することです。
解決済みとマークされます。この問題のほとんどは、受け入れられた回答を参照してください。 1行の問題は、count()でGROUP BYを使用していなかったためです。
DB :: statement()はそのままクエリを実行しますので、問題はlaravelとは関係ありません。このクエリをcliで直接実行しようとしましたか? –
ああ。私はそれを考えすぎているかもしれません。私がSQLでそれを実行する場合、数と合計はジョインの前に選択されます。私がララベルでそれを試してみると、それはエラーを投げます –