Je travaille sur un petit projet en ce qui concerne la prochaine Coupe du monde. Je construis un alignement/leaderboard/tableau de bord basé sur des groupes avec des équipes nationales. L'idée est d'avoir des informations sur tous les matchs à venir dans le groupe ou dans la phase à élimination directe (scores, temps du match, statistiques de match, etc.). Actuellement, je suis coincé avec la base de données en ce sens que je ne peux pas proposer une requête qui retournerait les équipes jumelées d'affilée. J'ai ces 3 tables:Mysql plusieurs à plusieurs problèmes (leaderborad/tableau de bord)
CREATE TABLE IF NOT EXISTS `wc_team` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
`description` VARCHAR(250) NULL ,
`flag` VARCHAR(45) NULL ,
`image` VARCHAR(45) NULL ,
`added` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`id`) ,
CREATE TABLE IF NOT EXISTS `wc_match` (
`id` INT NOT NULL AUTO_INCREMENT ,
`score` VARCHAR(6) NULL ,
`date` DATE NULL ,
`time` VARCHAR(45) NULL ,
`added` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`id`) ,
CREATE TABLE IF NOT EXISTS `wc_team_has_match` (
`wc_team_id` INT NOT NULL ,
`wc_match_id` INT NOT NULL ,
PRIMARY KEY (`wc_team_id`, `wc_match_id`) ,
J'ai simplifié les tables afin que nous n'allions pas dans la mauvaise direction. Maintenant, j'ai essayé toutes sortes de jointures et de groupements auxquels je pouvais penser, mais je n'ai jamais l'air de l'avoir.
Exemple requête:
SELECT t.wc_team_id, t.wc_match_id, c.id.c.name, d.id, d.name
FROM wc_team_has_match AS t
LEFT JOIN wc_match AS s ON t.wc_match_id = s.id
LEFT JOIN wc_team AS c ON t.wc_team_id = c.id
LEFT JOIN wc_team AS d ON t.wc_team_id = d.id
qui retourne:
wc_team_id wc_match_id id name id name
16 5 16 Brazil 16 Brazil
18 5 18 Argentina 18 Argentina
Mais ce que je veux vraiment est:
wc_team_id wc_match_id id name id name
16 5 16 Brazil 18 Argentina
Gardez à l'esprit qu'un groupe a plus de matches que je veux voir tous ces matchs pas seulement un.
N'importe quel pointeur ou suggestion serait extrêmement apprécié puisque je suis coincé comme un canard sur celui-ci :).
un Nice. J'ai toujours tendance à trop compliquer les choses :). Merci à la tête. – zoko2902
Les paires Knockout seront entrées plus tard, lorsqu'elles sont connues. J'ai donc mis un champ dans la table qui couvre les étapes de la Coupe puisqu'il y en a deux. – zoko2902