Question

J'ai 3 tables: les personnes, les groupes et les adhésions. Memberships est une table de jointure entre des personnes et des groupes. Elle comporte 3 colonnes: personId, groupId et description (texte).

Je souhaite sélectionner des entrées dans la table d'appartenances en fonction d'un ID de groupe, mais en triant le résultat en fonction du nom des personnes associées aux appartenances trouvées (le nom est une colonne de la table des personnes)

SELECT * FROM "memberships" WHERE ("memberships".groupId = 32) ORDER BY (?????)

Est-il possible d'y parvenir en une seule requête?

Était-ce utile?

La solution

Inscrivez-vous à la table des personnes, puis triez-le en fonction du champ souhaité.

SELECT
  m.* 
FROM 
  "memberships" AS m
  JOIN "people" AS p on p.personid = m.personID
WHERE
  m.groupId = 32
ORDER BY 
  p.name

Autres conseils

SELECT *
FROM Membership AS m
     JOIN People as p ON p.personID = m.personID
WHERE m.groupID = 32
ORDER BY p.name
SELECT
      M.* ,
      P.Name AS PersonName
FROM 
      Memberships AS m
INNER  JOIN 
      People AS P ON P.PersonID = M.PersonID
WHERE
      M.GroupID = 32
ORDER BY 
      PersonName
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top