Порядок SQL по столбцу из другой таблицы - PullRequest
17 голосов
/ 26 ноября 2009

У меня есть 3 таблицы: люди, группы и членство. Членство - это объединяющая таблица между людьми и группами, состоящая из 3 столбцов: personId, groupId и description (text).

Я хочу выбрать записи из таблицы членства в зависимости от идентификатора группы, но сортировать результат по именам людей, связанных с найденным членством (имя является столбцом таблицы людей)

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

Возможно ли достичь этого за один запрос?

Ответы [ 3 ]

29 голосов
/ 26 ноября 2009

Присоединитесь к таблице людей и затем упорядочите по полю, которое вы хотите.

SELECT
  m.* 
FROM 
  "memberships" AS m
  JOIN "people" AS p on p.personid = m.personID
WHERE
  m.groupId = 32
ORDER BY 
  p.name
3 голосов
/ 27 ноября 2009
SELECT *
FROM Membership AS m
     JOIN People as p ON p.personID = m.personID
WHERE m.groupID = 32
ORDER BY p.name
1 голос
/ 27 ноября 2009
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
...