Requete SQL entre 2 tables Many to Many
Macmanaman
-
Jres -
Jres -
Bonjour,
J'ai une question de SQL que je n'arrive pas à résoudre.
Voici un exemple.
J'ai une classe Parent avec un nom, un prénom, et une collection "enfants". La classe enfant mettons qu'il y a
juste un prénom.
Les deux classes sont liés par un lien "many to many". (1..n en français donc).
Voici le type de requete que je voudrais exécuter : "donne moi toutes les personnes qui ont des enfants nommés Jean et Marie". Attention Jean ET Marie. Donc les personnes doivent avoir au moins deux enfants : un Jean et une Marie.
Logiquement ça peut donc retourner plusieurs personnes.
Voilà j'ai simplifé mon application est bien plus complexe mais si j'arrive à le faire avec des personnes et des
enfants, je pourrai adapter ! J'utilise hibernate si y'en a qui connaissent. Mais je recherche la requete SQL,
j'adapterai ensuite.
Merci beaucoup pour votre aide !!
J'ai une question de SQL que je n'arrive pas à résoudre.
Voici un exemple.
J'ai une classe Parent avec un nom, un prénom, et une collection "enfants". La classe enfant mettons qu'il y a
juste un prénom.
Les deux classes sont liés par un lien "many to many". (1..n en français donc).
Voici le type de requete que je voudrais exécuter : "donne moi toutes les personnes qui ont des enfants nommés Jean et Marie". Attention Jean ET Marie. Donc les personnes doivent avoir au moins deux enfants : un Jean et une Marie.
Logiquement ça peut donc retourner plusieurs personnes.
Voilà j'ai simplifé mon application est bien plus complexe mais si j'arrive à le faire avec des personnes et des
enfants, je pourrai adapter ! J'utilise hibernate si y'en a qui connaissent. Mais je recherche la requete SQL,
j'adapterai ensuite.
Merci beaucoup pour votre aide !!
2 réponses
-
Bonjour,
Vous pouvez utiliser une requete du style :Select p.* from parent p, enfant e1, enfant e2 where p.nom = e1.nom and p.nom = e2.nom and e1.prenom='Jean' and e2.prenom='Marie';
Cordialement,
Jres -
Vous avez forcement un lien entre la table parent et la table enfant. J'ai utilisé "Nom" a titre informatif mais le principe de la requete reste valable :
La table parent doit être reliée deux fois à la table enfant.
A vous de faire le lien qui va bien.
Cordialement,
Jres