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