Je travaille sur un site de football, avec de nombreuses fonctionnalités, des listes de résultats. Les tables sont séparées entre les saisons (nom de la saison, etc.) et les rondes (qui sont générées chaque fois qu'une nouvelle saison démarre, comme 2008/2009, 2009/2010, etc.)MySQL - convertir et comparer les dates sur la requête
table ronde a une date de début et une date de fin , et la seule façon dont je dois dinamically savoir avec lequel je devrais travailler dans le frontend de site Web est en comparant ces dates avec les tours restants concernant la même saison.
Toutes les données sont extraites d'un xml, et les dates ressembler à ceci:
2009-08-16
Alors, mes 2 problèmes:
- Comparer les dates (et les convertir probablement on-the voler) et découvrir sorcière ronde a la plus grande date de fin;
- obtenir le tour droit (quelques tours à venir peut-être déjà dans la base de données, mais le cycle actuel pourrait être une autre avant ceux-ci, si vous savez ce que je veux dire)
Je ne suis pas expert ou quoi que ce soit avec SQL , donc j'aimerais savoir comment vous feriez ça.
Voilà ma question actuelle:
SELECT seasons.competition_id AS cid,
seasons.id AS sid,
rounds.id AS rid,
seasons.start_date AS sstart,
seasons.end_date AS send,
rounds.start_date AS rstart,
rounds.end_date AS rend,
round_groups.id AS rgid
FROM seasons
INNER JOIN rounds ON seasons.id=rounds.season_id
LEFT JOIN round_groups ON rounds.id=round_groups.round_id
ps: vous pouvez remarquer la table round_groups que j'oublié de mentionner, il est utilisé quand une certaine saison est divisée en groupes, comme l'UEFA et Champions.
EDIT:
Une saison est une entrée sur la base de données est mise à jour une fois par saison, parce que certaines compétitions changent leur nom en ce qui concerne le commanditaire de la saison. Le tour change une fois par saison au moins, mais peut avoir plus de changements. Dans certaines compétitions comme l'UEFA, ils disputent des premiers tours éliminatoires, puis une phase de groupe, puis une élimination à nouveau, ce qui se traduirait par 3 tours différents. Le résultat final devrait être une liste de tous les tours actuellement actifs pour chaque saison.
Je ne comprends pas - il y a beaucoup de discussions sur les dates et tournées, mais l'exemple joint sur la 'season_id'? Qu'avez-vous, et que voulez-vous pour la sortie finale? –
Une saison est une entrée de la base de données qui est mise à jour une fois par saison, car certaines compétitions changent de nom pour le sponsor de la saison. Le tour change une fois par saison au moins, mais peut avoir plus de changements. Dans certaines compétitions comme l'UEFA, ils disputent des premiers tours éliminatoires, puis une phase de groupe, puis une élimination à nouveau, ce qui se traduirait par 3 tours différents. Le résultat final devrait être une liste de tous les tours actuellement actifs pour chaque saison. – yoda
Bon à savoir, mais je suis toujours aussi désemparé, désolé. –