Knex: ネストされた結合クエリを作成することは可能ですか?

作成日 2016年04月21日  ·  3コメント  ·  ソース: knex/knex

こんにちは、Knexjsチームによる素晴らしい仕事です。 私は多対多の関係を持つ1つの小さな例でORMを介してknexjsを試しています。 例は、auhtorsテーブルとbookテーブルがauthor_booksテーブルを介して多対多の関係にあるAuthors andBooksの例です。 すべての著者と一緒に特定の本を手に入れたいです。 以下は、期待される結果を与える生のクエリです。 しかし、Knexjsを使用してこのクエリを作成する方法がわかりませんか? どんな助けでもいただければ幸いです。

注:私はjavascriptES6でKnexjsを使用しています。

クエリ:-

SELECT  `book`.`id` ,  `book`.`title` ,  `authors`.`id` AS  `authors.id` ,  `authors`.`name`
AS  `authors.authorname` ,  `authors.author_books`.`book_id` 
AS  `authors.author_books.bookId` , `authors.author_books`.`author_id` 
AS  `authors.author_books.author_id` 
FROM  `books` AS  `book` 
LEFT OUTER JOIN (
 `author_books` AS  `authors.author_books` 
INNER JOIN  `authors` AS  `authors` ON  `authors`.`id` =  `authors.author_books`.`author_id`
) ON  `book`.`id` =  `authors.author_books`.`book_id` 
WHERE  `book`.`id` =1

これは、Knexjsを使用して作成しようとしているクエリです。

this.Knex('books as book')
.leftOuterJoin('author_books as authors.author_books', function(){
  // How could I nest INNER JOIN in LEFT OUTER JOIN

  this.on('book.id', 'authors.author_books.book_id')
}).select('book.id', 'book.title', 'authors.id as authors.id'
  , 'authors.name as authors.name', 'authors.author_books.book_id as authors.author_books.book_id'
  , 'authors.author_books.author_id as authors.auhtor_books.author_id')
.where('book.id', id)

私がどこか間違っているかどうか教えてください。

question

最も参考になるコメント

問題は、knexjsを使用して結合クエリをネストする方法です。 knexを使用してLeftまたはRightJOINでネストされた内部結合。これにより、knexは上記のQuery:セクションに示すようにSQLクエリを作成できます。

全てのコメント3件

問題は、knexjsを使用して結合クエリをネストする方法です。 knexを使用してLeftまたはRightJOINでネストされた内部結合。これにより、knexは上記のQuery:セクションに示すようにSQLクエリを作成できます。

@saurabhghewariこの質問の解決策を見つけたことがありますか? 私は似たようなことをしようとしています。

knexがネストされた結合をサポートしているかどうかはわかりません...その場合のテストやドキュメントは見当たらなかったので、サポートされていないと確信しています。 このための機能リクエストを追加してください。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

npow picture npow  ·  3コメント

rarkins picture rarkins  ·  3コメント

sandrocsimas picture sandrocsimas  ·  3コメント

marianomerlo picture marianomerlo  ·  3コメント

koskimas picture koskimas  ·  3コメント