0

たとえば、次の 2 つのテーブルがあります。

SERIES: 関連する 3 つの列 (2 つのチームがシリーズに参加): series_id、team1_id、team2_id

結果: 関連する 3 つの列: series_id、team_id (および時間)

チームが SERIES のゲームに勝つたびに、行が RESULTS テーブルに挿入されます。

各シリーズの現在のスコアを知らなければなりません。したがって、series_id とチーム ID でテーブルを結合する必要があります。ただし、次のような結果が必要です。

series team1 team2
------------------
1        4     3
2        3     1
3        2     4

結果テーブルで複数の列を取得する方法がわかりません。どちらも、入力テーブルからの条件付き行の SUM を格納します。何か案は?

4

1 に答える 1

0

でテーブルに参加し、series_idシリーズごとにグループ化し、勝利チームがシリーズのそれぞれの参加者と一致する回数をカウントします (MySQLでは、とが等しいためSUM(boolean expression)、カウントを実行するために使用できます)。TRUE1FALSE0

SELECT   series_id,
         SUM(RESULTS.team_id = SERIES.team1_id) AS team1,
         SUM(RESULTS.team_id = SERIES.team2_id) AS team2
FROM     SERIES LEFT JOIN RESULTS USING (series_id)
GROUP BY series_id
于 2012-09-03T22:23:28.397 に答える