Ich versuche eine Datenbankansicht über eine Migration in Laravel 5.2 zu erstellen, da ich eine ziemlich komplexe Abfrage an eine Ansicht übergeben muss. Ich habe Modelle/Tabellen für Ligen, Teams, Spieler und Punkte. Jeder hat eine hasMany/belongsTo-Beziehung mit der davor. Das Ziel besteht darin, eine Tabelle zu erstellen, in der jede Zeile ein Liganame, eine Summe aller verbleibenden Punkte für die Liga und eine Anzahl von points.remnants ist, wobei der Wert von points.remnants> 4 ist.Datenbankansicht im Migration Laravel erstellen 5.2
Major Edit:
Was ich bisher habe, ist
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);
');
Dies keine Fehler werfen, aber es gibt nur eine Zeile und die Summe für alle Punkte in allen Ligen.
Ich suche nach einer Tabelle, wo es eine Reihe für jede Liga gibt, die den Liganamen, die restlichen Punkte für diese Liga und die Gesamtpunkte mit weniger als 4 übrig hat.
Als gelöst markiert. Siehe die akzeptierte Antwort für die meisten dieser Probleme. Das Problem mit einer Zeile bestand darin, dass ich GROUP BY nicht mit count() verwendete.
DB :: statement() wird Ihre Abfrage so ausführen wie sie ist, also würde ich annehmen, dass das Problem nichts mit Laravel zu tun hat. Haben Sie versucht, diese Abfrage direkt auf dem Client auszuführen? –
Ah. Ich könnte es dann überdenken. Wenn ich es in sql ausführen würde, wären die Anzahl und die Summe in der Auswahl vor den Joins. Wenn ich das in Laravel versuche, gibt es einen Fehler –