Порядок SQL по столбцу из другой таблицы

У меня есть 3 таблицы: люди, группы и членство. Членство представляет собой таблицу соединений между людьми и группами и имеет 3 столбца: personId, groupId и описание (текст).

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

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

Можно ли добиться этого в одном запросе?


person Florent2    schedule 26.11.2009    source источник


Ответы (2)


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

SELECT
  m.* 
FROM 
  "memberships" AS m
  JOIN "people" AS p on p.personid = m.personID
WHERE
  m.groupId = 32
ORDER BY 
  p.name
person Donnie    schedule 26.11.2009
comment
Некоторые серверы данных SQL настаивают на том, чтобы вы упорядочивали только выбранные данные — в этом случае вам нужно будет добавить p.name к выбранным данным. - person Jonathan Leffler; 27.11.2009

person    schedule
comment
Похоже, ему нужна информация только из таблицы членства, так что, может быть, SELECT m.* ...как указано выше...? Затем от сервера данных SQL зависит, можете ли вы упорядочить невыбранный столбец; если нет, то возвращаемые данные должны будут включать p.name. - person Jonathan Leffler; 27.11.2009