web-dev-qa-db-ja.com

別のテーブルの列によるSQLの順序

私は3つのテーブルを持っています:人、グループ、メンバーシップ。メンバーシップは、人とグループ間の結合テーブルであり、personId、groupId、description(テキスト)の3つの列があります。

GroupIdに応じてmembershipsテーブルからエントリを選択したいのですが、見つかったメンバーシップに関連付けられている人の名前で結果を並べ替えます(nameはpeopleテーブルの列です)

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

1つのクエリでこれを実現することは可能ですか?

18
Florent2

ピープルテーブルに参加して、必要なフィールドで並べ替えます。

SELECT
  m.* 
FROM 
  "memberships" AS m
  JOIN "people" AS p on p.personid = m.personID
WHERE
  m.groupId = 32
ORDER BY 
  p.name
29
Donnie
SELECT *
FROM Membership AS m
     JOIN People as p ON p.personID = m.personID
WHERE m.groupID = 32
ORDER BY p.name
3
Damir Sudarevic
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
1
p.campbell