Как мне выполнить SQL-запрос, подобный этому, в Fluent?
SELECT `book`.*
FROM `book`
JOIN `book_user` ON `book`.`id` = `book_user`.`bookId`
GROUP BY `book`.`id`
ORDER BY COUNT(`book`.`id`) DESC;
Я пытался добиться этого, используя:
Book.query(on: req)
.join(UserBookPivot.self, field: \UserBookPivot.bookId, to: \Book.id, method: .inner)
.group(by: \Book.id)
.sort(\Book.id, .descending)
.all()
, который только выдал запрос, подобный этому:
SELECT *
-- ^
FROM `book`
JOIN `book_user` ON `book`.`id` = `book_user`.`bookId`
GROUP BY `book`.`id`
ORDER BY `book`.`id` DESC;
-- ^^^^^^^^^^^
Все еще не может найти способ произвести ORDER BY COUNT(book.id)
и SELECT book.*
.
Возможно ли сделать это в текущей версии паров, кроме использования .simpleQuery(_:)
вручную?
ENV:
Vapor: 3.0.0.rc-2.7
Свободно владею: 3.0.0.rc-2.3.3
Fluent-mysql: 3.0.0.rc-2.3