Supposons que vous ayez un schéma de base de données avec des tournois liés aux jeux. Un tournoi peut avoir beaucoup de jeux. J'essaie de rejoindre des tournois pour des jeux et seulement retirer des tournois avec tous les jeux dans le futur.Comment appliquer des conditions de jointure SQL sur plusieurs lignes jointes?
SELECT DISTINCT tournaments.*
FROM tournaments
INNER JOIN games ON tournaments.game_id = games.id
WHERE games.event_date >= NOW();
Il y a quelques autres tableaux auxquels je m'associe, mais je l'ai simplifié pour cet exemple.
Ma requête retourne les résultats où tous les jeux du tournoi ne sont pas dans le futur.
J'ai aussi essayé de déplacer la condition dans la jointure:
SELECT DISTINCT tournaments.*
FROM tournaments
INNER JOIN games ON (tournaments.game_id = games.id AND games.event_date >= NOW())
mais j'obtenir le même résultat.
Comment puis-je m'assurer que tous les tournois renvoyés ont des jeux dans le futur, c'est-à-dire appliquer la condition sur toutes les lignes jointes?
Merci!
Très similaire à http://stackoverflow.com/questions/4115006/sql-child-relation-query-help/4115127#4115127 – beach