Ordre SQL par une colonne d'une autre table
-
05-07-2019 - |
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?
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