В моей базе данных есть две таблицы: одна называется «ЛИГИ», а другая - «МАТЧИ». Я хочу получить выигрыш каждой лиги в зависимости от благоприятного результата матчей, связанных с этими лигами.
Структура таблиц:
####################### ###########################
# TABLE LEAGUES # # TABLE MATCHES #
####################### ###########################
+----------+----------+ +-------------------------+
| ID | name | |ID|match|League_id|Result|
+----------+----------+ +--+-----+---------+------+
| 1 | aaa | |1 |xxxxx| 1 | W |
| 2 | bbb | |2 |xxxxx| 1 | L |
| 3 | ccc | |3 |xxxxx| 2 | W |
| 4 | ddd | |4 |xxxxx| 3 | W |
+----------+----------+ |5 |xxxxx| 3 | L |
|6 |xxxxx| 3 | W |
+--+-----+---------+------+
Результат, который я хочу:
#######################
# RESULT #
#######################
+----------+----------+
|league.id | Winrate |
+----------+----------+
| 1 | 50% |
| 2 | 100% |
| 3 | 66% |
+----------+----------+
Я попробовал следующий код, но он не работает, потому что подзапрос возвращает более одного значения:
SELECT leagues.id, COUNT(leagues.id)*100/(SELECT COUNT(leagues.id)
FROM leagues,matches WHERE
leagues.id=matches.League_id
GROUP BY leagues.id) as winrate
FROM leagues,matches
WHERE leagues.id=matches.League_id and matches.result like 'W'
GROUP BY leagues.id
Есть ли другой способ получить эти результаты? Заранее спасибо.