チームの勝敗記録を取得しようとしています。この例ではチーム 1 です。チームがプレーできる形式は複数あり、記録はそれに応じてこれらをグループ化します。チームが特定の形式で引き分けでプレーしていない場合を除いて、完全に機能します(おそらく勝利のためにもそうしますが、データベースに勝利のないチームはありません)、その形式のデータの取得を拒否します. 描画にゼロを返し、その形式の残りの結果を表示する必要があります。クエリは次のとおりです。
SELECT matches.format, count(id) as played, a.wins, b.draws, count(id)-a.wins-b.draws as loss
FROM matches
INNER JOIN (SELECT format, count(id) as wins
FROM matches
WHERE winner=1
GROUP BY format) as a ON matches.format=a.format
INNER JOIN (SELECT format, count(id) as draws
FROM matches
WHERE hometeam=1
AND winner=-1
OR awayteam=1
AND winner=-1) as b ON matches.format=b.format
WHERE matches.hometeam=1
OR matches.awayteam=1
GROUP BY format
これは戻ります
format played wins draws loss
1 14 9 1 4
しかし、このチームもフォーマット「2」で 6 試合を行い、4 勝 2 敗で引き分けがないことを完全に無視しています。どんな助けでも大歓迎です