Bonjour,
J'éprouve un peu de mal à expliquer ce que je souhaite. Mais imaginez 2 tables :
Table "utilisateurs" avec 1 record (id, prenom) : "1, Alphonse"
Table "nationalites" avec 3 records (utilisateur_id, nationalite) : "1, Belge", "1, Français" et "1, Espagnol".
En SQL, je souhaite afficher le résultat suivant : chaque ligne correspond à une nationalité de la personne + ses autres nationalités dans une 3ème colonne
En SQL, la requête pourrait ressembler à ça, mais j'y arrive pas.
Comment faire ma jointure pour ajouter "nationalites_autres" qui ne serait qu'un alias de "nationalites" liée une 2ème fois.
Merci d'avance,
Modifié par Alphonse (30 Nov 2022 - 14:20)
J'éprouve un peu de mal à expliquer ce que je souhaite. Mais imaginez 2 tables :
Table "utilisateurs" avec 1 record (id, prenom) : "1, Alphonse"
Table "nationalites" avec 3 records (utilisateur_id, nationalite) : "1, Belge", "1, Français" et "1, Espagnol".
En SQL, je souhaite afficher le résultat suivant : chaque ligne correspond à une nationalité de la personne + ses autres nationalités dans une 3ème colonne
| Alphonse | Belge | Français, Espagnol |
| Alphonse | Français | Belge, Espagnol |
| Alphonse | Espagnol | Belge, Français |
En SQL, la requête pourrait ressembler à ça, mais j'y arrive pas.
SELECT
utilisateurs.prenom, nationalites.nationalite,
STRING_AGG(nationalites_autres.nationalite, ', ') AS autres_nationalites
FROM
utilisateurs,
nationalites
WHERE
utilisateurs.id = nationalites.utilisateur_id
Comment faire ma jointure pour ajouter "nationalites_autres" qui ne serait qu'un alias de "nationalites" liée une 2ème fois.
Merci d'avance,
Modifié par Alphonse (30 Nov 2022 - 14:20)