Requete SQL entre 2 tables Many to Many

Macmanaman -  
 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 !!

2 réponses

  1. Jres
     
    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
    0
    1. Macmanaman
       
      Malheureusement les parents et les enfants ne peuvent pas etre reliés par le nom de famille.
      Ainsi un enfant Jean pourra appartenir à plusieurs parents différents.
      Bon dans la réalité c'est pas bien réalisable mais c'est juste un exemple ...

      Auriez vous une autre idée ?

      Merci par avance.
      0
  2. 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
    0