Я думаю, что у вас есть проблема проектирования баз данных. Понимаю ли я, что ваш результат заключается в отображении игр в определенном соревновании? Итак, команда A играет против команды B в конкурсе C?
Вы должны создать более двух таблиц, которые я думаю.
- Таблица A: содержит все ваши команды.
- Таблица B, содержащая все соревнования (потому что, возможно, команда могла участвовать в более чем одном соревновании).
- Таблица C, чтобы присоединиться к командам в соревнованиях.
- Таблица D, чтобы провести игры в определенном конкурсе.
В таблице D мы связываем ссылки только из таблицы C. Причина состоит в том, чтобы не дать команде играть в соревновании, в котором он не участвует.
Итак:
Table A (Teams) contains columns (idTeam INT, Teamname VARCHAR 50)
Table B (Competitions) contains columns (idComp INT, Competitionname VARCHAR 50)
Table C (TeamCompetitions) contains columns (idTeam INT, idComp INT)
Table D (Games) contains columns (idTeamCompA INT, idTeamCompB INT, idComp INT)
Тогда запрос не так уж трудно:
SELECT
TeamA.Teamname as teamA,
TeamB.Teamname as teamB,
comp.Competitionname as competition
FROM
Games
JOIN TeamCompetitions AS compTeamA ON compTeamA.idTeamCompetition = Games.idTeamCompA
JOIN Teams AS TeamA ON compTeamA.idTeam = TeamA.idTeam
JOIN TeamCompetitions AS compTeamB ON compTeamB.idTeamCompetition = Games.idTeamCompB
JOIN Teams AS TeamB ON compTeamB.idTeam = TeamB.idTeam
JOIN Competitions AS comp ON compTeamA.idCompetition = comp.idCompetition
пример: команды
1 Zimbabwe
2 Kenya
3 AJAX
4 Chelsea
5 Feyenoord
6 PEC Zwolle
Соревнования
1 World Championship 2014
2 Dutch Premier League
TeamCompetitions
1 1 1
2 1 1
3 2 1
4 3 1
5 4 1
6 3 2
7 5 2
8 6 2
Игры
1 2
2 3
7 6
7 8
Выход запроса:
teamA teamB competition
Zimbabwe Zimbabwe World Championship 2014
Zimbabwe Kenya World Championship 2014
Feyenoord AJAX Dutch Premier League
Feyenoord PEC Zwolle Dutch Premier League
Надежда это помогает!
вы можете обновить таблицу и запросить здесь: http://sqlfiddle.com/ – imsyedahmed
эй, что у вас есть вопрос! вы неверны, вы выбираете из таблицы не базу данных, и вы объединяете этот столбец, в который вы применили группу. – developerCK
Вам нужно будет извлечь каждую строку из db, упорядочить по * comp * и добавить группировку с использованием php. Основной принцип [поясняется здесь] (http://www.dreamincode.net/forums/topic/96215-grouping-in-php-from-a-mysql-query-result/). –