Я не могу попасть на правильный путь с этим, любая помощь будет оценена
У меня есть одна таблица
+---+----------+---------+-----------+
|id | match_id | team_id | player_id |
+---+----------+---------+-----------+
| 1 | 9 | 10 | 5 |
| 2 | 9 | 10 | 7 |
| 3 | 9 | 10 | 9 |
| 4 | 9 | 11 | 12 |
| 5 | 9 | 11 | 15 |
| 6 | 9 | 11 | 18 |
+---+----------+---------+-----------+
Я хочу выбрать их с помощью where_ match_id и оба идентификатора команды, поэтому вывод будет
+---------+-------+------+---------+---------+
| MATCHID | TEAMA | TEAMB| PLAYERA | PLAYERB |
+---------+-------+------+---------+---------+
| 9 | 10 | 11 | 5 | 12 |
| 9 | 10 | 11 | 7 | 15 |
| 9 | 10 | 11 | 9 | 18 |
+---------+-------+------+---------+---------+
Это, наверное, очень просто, но я застрял.
заблаговременно
p.s. казалось, забыл колонку на моем первом посте, извините
Думаю, вам нужно:
SELECT
a.match_id, a.team_id AS TeamA, b.team_id AS teamB,
a.player_id AS PlayerA, b.player_id AS PlayerB
FROM PLayer AS a
INNER JOIN Player AS b ON a.match_id = b.match_id
WHERE a.team_id < b.team_id
Хотя это даст вам каждую пару игроков для каждой игры, то есть
+---------+-------+------+---------+---------+
| MATCHID | TEAMA | TEAMB| PLAYERA | PLAYERB |
+---------+-------+------+---------+---------+
| 9 | 10 | 11 | 5 | 12 |
| 9 | 10 | 11 | 5 | 15 |
| 9 | 10 | 11 | 5 | 18 |
| 9 | 10 | 11 | 7 | 12 |
| 9 | 10 | 11 | 7 | 15 |
| 9 | 10 | 11 | 7 | 18 |
| 9 | 10 | 11 | 9 | 12 |
| 9 | 10 | 11 | 9 | 15 |
| 9 | 10 | 11 | 9 | 18 |
+---------+-------+------+---------+---------+
Чтобы ограничить его дальше, вам нужен критерий, чтобы определить, что игроки должны быть в паре.
Я думаю, что лучше переделать вашу базу данных.
select MatchA.id as MATCHID, MatchA.team_id as TEAMA, MatchB.team_id as TEAMB, MatchA.player_id as PLAYERA, MatchB.player_id as PLAYERB
from Match as MatchA, match as MatchB
where MatchA.id = MatchB.id and MatchA.team_id < MatchB.team_id