Dans ma base de données, il y a quatre types d'individus, youngOrc
, oldOrc
, youngHuman
, oldHuman
.Requête MySQL imbriquée où condition
Un individu appartient à un type conditionnel à une plage de dates. Ainsi, je tableaux comme celui-ci pour chaque type:
youngOrcList ------------------- individual_id, start_date, end_date
Cela signifie que le gars avec individual_id
est un youngOrc
entre le début et la date de fin. Il peut être quelque chose d'autre en dehors de cette gamme. De même, j'ai une table youngHuman
.
Maintenant, la table d'intérêt réel que je veux filtrer est des événements:
events ------------------ source_individual_id target_individual_id event_date
table des événements enregistre tous les événements entre deux individus dans mon royaume. Je veux filtrer de sorte que je sélectionne seulement events
entre youngOrc
et youngHuman
.
Il s'agit donc d'une condition de tri "imbriquée", où j'ai besoin des deux events.source_individual_id IN youngOrcList
et events.event_date BETWEEN youngOrcList.start_date AND youngOrcList.end_date
. Comment faire ce travail?
(En outre, toute suggestion concernant un meilleur titre serait génial. Je ne sais même pas comment appeler cela et donc incapable de Google efficace.)
Qu'avez-vous essayé jusqu'à présent? En outre, cela vous aidera si vous fournissez des exemples de données et des résultats attendus. – Bulat
Il semble que vous ayez un mauvais schéma. Pour moi, il n'y a aucune raison d'avoir 4 séparatables pour ces classes d'individus. Pourquoi ne pas simplement une seule table avec tous les individus. Vieux/jeune est vraiment juste une propriété de l'individu (et je suppose que cela pourrait changer au fil du temps - alors qu'est-ce que vous allez déplacer les individus d'une table à l'autre à mesure qu'ils vieillissent dans votre régime actuel?). L'humain et l'orc pourraient également être considérés comme une propriété de l'individu. Pourquoi ne pas simplement avoir des individus et des événements qui se rapportent à des individus? –
Les objets youngOrcList sont des tableaux que je crée moi-même pour faciliter la requête. Le schéma réel a une table qui mappe les individus à leurs types conditionnellement à la plage de dates comme vous l'avez dit. Est-ce que l'utilisation de cette table serait plus facile pour moi? – Heisenberg