私は、次のPostgreSQLのクエリが何羽ペンで達成しようとしていますによって:グループ多対多のクイル
val books = quote(querySchema[Book]("books"))
val authorsBooks = quote(querySchema[AuthorBook]("authors_books"))
val authors = quote(querySchema[Author]("authors"))
val q: db.Quoted[db.Query[(db.Query[Book], Seq[String])]] = quote{
books
.join(authorsBooks).on(_.id == _.book_id)
.join(authors).on(_._2.author_id == _.id)
.groupBy(_._1._1.id)
.map {
case (bId, q) => {
(q.map(_._1._1), unquote(q.map(_._2.name).arrayAgg))
}
}
}
:今、私は私のクイルのバージョンでこれを持っているため
select books.*, array_agg(authors.name) from books
join authors_books on(books.id = authors_books.book_id)
join authors on(authors.id = authors_books.author_id)
group by books.id
結果(db.Query [Book])でネストされたクエリを取り除き、代わりにブックを取得できますか?
マップの代わりにflatMapを試しましたか?私はこれについては確信していませんが、ちょうど推測 – sparkr
私はそうだと思うが、結果が何であるか覚えていない、私はかなり長い間このクエリで戦っている、私はそれを再び後で今日に戻って、知っている。 –