Sql 如何扩展第一次查询的结果?

Sql 如何扩展第一次查询的结果?,sql,postgresql,scala,slick,Sql,Postgresql,Scala,Slick,这是我第一次使用Postgres,我想写一个查询,它可以扩展数组中的元素。示例如下 比如说,我桌上有个东西 +-----+------+----+ | 123 | john | AZ | +-----+------+----+ | 456 | carl | CA | +-----+------+----+ 另一个表有一个包含用户ID数组的对象 +-----+-----------+ | 999 | {123,456} | +-----+-----------+ 考虑到两个案例类 case c

这是我第一次使用Postgres,我想写一个查询,它可以扩展数组中的元素。示例如下

比如说,我桌上有个东西

+-----+------+----+
| 123 | john | AZ |
+-----+------+----+
| 456 | carl | CA |
+-----+------+----+
另一个表有一个包含用户ID数组的对象

+-----+-----------+
| 999 | {123,456} |
+-----+-----------+
考虑到两个案例类

case class User(userId: Int, name: String, country: String)
case class Group(groupId: Int, users: List[User])
我想用这个签名写一个函数:

def getGroupById(groupId: Int): Future[Group] // or Future[Option[Group]]
所以

getGroupById(999) ---> Group(999, List(User(123, john, AZ), User(456, carl, CA))
目前,我正在以“暴力”的方式进行:

obtain group object with user ids
  ---> Future.sequence(query each user id) 
  ---> map to desired final object
但是,如果没有应用程序逻辑,我能在一个查询中实现这一点吗? 我正在使用Slick的扩展来操作Postgres中的数组