所以我正在为模拟曲棍球联赛制作一个网站。
我正在努力进入积分榜,这就是它变得复杂的地方。
有2个会议。东和西。
在每个会议中,有 3 个部门,为了举例,我们称它们为 A、B 和 C。
每个分区有 5 支球队,1 队,2 队,3 队,4 队,5 队。
所以这就是它变得棘手的地方。
排名由会议决定。例如,东方和西方有不同的排名。每个分区的顶级球队将自动在会议的前 3 名中播种。
比如A区1队5分,A区2队4分,B区4队4分(其余少),C区5队3分(其余少)。积分榜应该是: 1- 第 1 队 - A 区 - 5 分 2- 4 队 - B 区 - 4 分 3- 5 队 - C 区 - 3 分 4- 2 队 - A 区 - 4 分 ...
我的代码是:
$teams_east = DB::query("SELECT a.*, (CASE WHEN b.scoreMax IS NULL THEN 1 ELSE 2 END) AS SortFiddle
FROM (SELECT teams.*, teamdetails.division, ((`nhl_wins` *2) + `nhl_ot` + `nhl_ties`) AS scoreMax
FROM teams
LEFT JOIN teamdetails ON teams.team_name = teamdetails.pro_name
WHERE teamdetails.conference ='Est' ) a
LEFT OUTER JOIN
(SELECT division, MAX((`nhl_wins` *2) + `nhl_ot` + `nhl_ties`) AS scoreMax
FROM teams
LEFT JOIN teamdetails ON teams.team_name = teamdetails.pro_name
WHERE teamdetails.conference ='Est' GROUP BY division ORDER BY `nhl_wins`,scoreMax LIMIT 3) b
ON a.division = b.division
AND a.scoreMax = b.scoreMax
ORDER BY SortFiddle DESC, a.scoreMax DESC, `nhl_wins` DESC, nhl_gf DESC, nhl_ga ASC");
但是 DB::query 已被弃用,另外,我想使用 eloquent,因为这种相同类型的代码将在其他地方使用。