これはDBの例です
table "Users"
fname | lname | id | email
Joe | smith | 1 | yadda@goo.com
Bob | smith | 2 | bob@goo.com
Jane | smith | 3 | jane@goo.com
table "Awards"
userId | award
1 | bigaward
1 | smallaward
1 | thisaward
2 | thataward
table "Invites"
userId | invited
1 | true
3 | true
基本的に、次のようなものを作成できるクエリを PostgreSQL でどのように作成しますか。
[{
fname:"Joe",
lname:"Smith",
id: 1,
email: "yadda@goo.com",
invited: true,
awards: ["bigaward", "smallaward", "thisaward"]
},
{
fname:"Jane",
lname:"Smith",
id: 3,
email: "jane@goo.com",
invited: true,
awards: []
}]
これが私がやろうとしていることです...
SELECT users.fname, users.lname, users.id, users.email, invites.invited, awards.award(needs to be an array)
FROM users
JOIN awards on ....(unknown)
JOIN invites on invites.userid = users.id
WHERE invited = true
上記の配列は目的の出力になりますが、適切なワンショットクエリを見つけることができません。PostgreSQL のドキュメントを試しましたが、役に立ちませんでした。WITHステートメントが必要かもしれませんか?
事前に感謝します、Postgres グル!
PostgreSQL v. 9.2
postgresql IRC で RhodiumToad が回答しました:
SELECT users.fname, users.lname, .... array(select awards.award from awards where a.id = user.id) as awards
FROM users
JOIN invites on invites.userid = users.id
WHERE invited = true
array() 次に、その中のクエリを介して...素晴らしい!