SQL按另一个表中的列排序

SQL按另一个表中的列排序,sql,sql-order-by,Sql,Sql Order By,我有三张桌子:人、团体和会员。Memberships是人员和组之间的联接表,有3列:personId、groupId和description(文本) 我想根据groupId从memberships表中选择条目,但按与找到的成员身份相关联的人员姓名对结果进行排序(姓名是人员表的一列) 是否可以在一个查询中实现这一点 加入人员表,然后按所需字段排序 SELECT m.* FROM "memberships" AS m JOIN "people" AS p on p.personid

我有三张桌子:人、团体和会员。Memberships是人员和组之间的联接表,有3列:personId、groupId和description(文本)

我想根据groupId从memberships表中选择条目,但按与找到的成员身份相关联的人员姓名对结果进行排序(姓名是人员表的一列)


是否可以在一个查询中实现这一点

加入人员表,然后按所需字段排序

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

似乎他只需要memberships表中的信息,所以可能“选择m.*…如上…”?然后取决于SQL数据服务器是否可以按未选择的列排序;如果没有,则返回的数据必须包括p.name。一些SQL数据服务器坚持要求您仅按所选数据订购-在这种情况下,您必须将p.name添加到所选数据中。
SELECT
  m.* 
FROM 
  "memberships" AS m
  JOIN "people" AS p on p.personid = m.personID
WHERE
  m.groupId = 32
ORDER BY 
  p.name
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