1

チームの勝敗記録を取得しようとしています。この例ではチーム 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 敗で引き分けがないことを完全に無視しています。どんな助けでも大歓迎です

4

2 に答える 2