Я новичок в Scala и Slick. Я пытаюсь понять, как я должен создавать запросы с помощью Slick. У меня до сих пор было что-то, что я мог создавать простые запросы, но бороться с сочетанием SELECT, JOINs, GROUP BY и т. Д.Слайк-запрос с несколькими объединениями, группа и
Я нахожусь в середине преобразования моей виртуальной книжной полки (меда с PHP) в Scala, Играть и Слип.
Это запрос, я хочу сделать:
Список этих авторов (предел 5), от которого у меня есть по крайней мере 3 книги в моей книжной полке.
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
Видимо с помощью следующего кода, мне удалось создать необходимый соединяет:
(for(b <- books; a <- authors; ba <- bookAuthors; if b.id === ba.bookId && a.id === ba.authorId) yield (a.id, b.id)).run
Я потерял о том, как применить SELECT, GroupBy и HAVING в коде выше.
Пожалуйста, посмотрите на [это] (http://slick.typesafe.com/doc/2.1.0- M2/from-sql-to-slick.html # having). –
Или вы можете сохранить SQL-запрос и посмотреть Anorm для анализа результата. – cchantep