Jestem nowy w Scala i Slick. Próbuję zrozumieć, w jaki sposób powinienem tworzyć zapytania za pomocą Slicka. Do tej pory udało mi się stworzyć proste zapytania, ale zmagam się z łączeniem SELECT, JOIN, GROUP BY itp.Zręczne zapytanie z wieloma połączeniami, grupowanie według i posiadanie
Jestem w trakcie konwersji mojej wirtualnej półki na książki (meade z PHP) na Scalę, Graj i ślizgaj się.
To zapytanie chcę osiągnąć:
Lista tych autorów (ograniczenie do 5), z którymi mam co najmniej 3 książki w mojej półce.
SELECT
a.id,
a.firstname,
a.lastname,
count(b.id) AS amount
FROM
book b LEFT JOIN book_author ba ON b.id = ba.book_id
LEFT JOIN author a ON a.id = ba.author_id
GROUP BY
a.id
HAVING
amount >= 3
ORDER BY
amount DESC
LIMIT
5
Podobno z następującego kodu udało mi się stworzyć wymagane przyłącza:
(for(b <- books; a <- authors; ba <- bookAuthors; if b.id === ba.bookId && a.id === ba.authorId) yield (a.id, b.id)).run
gubię w jaki sposób zastosować SELECT GroupBy i konieczności kodu powyżej.
Proszę rzucić okiem na [to] (http://slick.typesafe.com/doc/2.1.0- M2/z-sql-to-slick.html # konieczności) zręczna strona dokumentacji. –
Możesz też zachować zapytanie SQL i spojrzeć na Anorm, aby przeanalizować wynik. – cchantep