Bonjour à tous,
Je me tourne vers vous car j'ai un doute concernant une requête dans une application web.
Je dois récupérer un champ d'une entité (principale) suivant une condition précise contenue dans d'autres entités liées à mon entité principale.
Je dois récupérer une valeur qui soit sur la base de la date du jour (en prenant uniquement le jour du champ date) d'une entité (E1) liée a l'entité principale, dont la liaison est sous forme de one-to-one.
Ce qui donne ceci :
mais je dois aussi utiliser un OR qui va aller dans une autre table (E2) lié via many-to-many avec l'entité principale. Il y a donc une table de liaison contenant les id de chaque table en DB (id_E2 et id_EntitePrincipal).
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT ent.field FROM Entity ent WHERE day(ent.ei1.date)= :dayDate
Et dans cette table je dois vérifier si pour l'entité principale il y a des enregistrements pour le jour passé en paramètre, comme dans la première partie en prenant le plus récent, donc un seul jour dans cette table. Si c'est le cas, récupérer l'ent.field si un enregistrement correspond à la condition.
J'ai essayé ceci mais la deuxième partie ne semble pas fonctionner.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ent.field FROM Entity ent WHERE day(ent.ei1.date)= :dayDate or exists ( SELECT day(max(d.beginTime) FROM ent.e2 d) = :dayDate
Qu'en pensez-vous ?
Merci d'avance pour votre aide.
Partager