来自另一个表的列的SQL顺序

Flo*_*nt2 18 sql sql-order-by

我有3个表:人员,团体和会员.成员资格是人和组之间的连接表,有3列:personId,groupId和description(text).

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

SELECT * FROM "memberships" WHERE ("memberships".groupId = 32) ORDER BY (?????)
Run Code Online (Sandbox Code Playgroud)

是否可以在一个查询中实现此目的?

Don*_*nie 29

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

SELECT
  m.* 
FROM 
  "memberships" AS m
  JOIN "people" AS p on p.personid = m.personID
WHERE
  m.groupId = 32
ORDER BY 
  p.name
Run Code Online (Sandbox Code Playgroud)

  • 某些SQL数据服务器坚持您只按所选数据排序 - 在这种情况下,您必须将p.name添加到所选数据. (7认同)