Knex: apakah mungkin untuk membangun kueri Gabung bersarang?

Dibuat pada 21 Apr 2016  ·  3Komentar  ·  Sumber: knex/knex

Hai, Kerja bagus tim Knexjs. Saya mencoba knexjs melalui ORM dengan satu contoh kecil yang memiliki hubungan banyak ke banyak. Contohnya adalah Penulis dan Buku dimana tabel auhtor dan tabel buku memiliki hubungan banyak ke banyak melalui tabel author_books. Saya ingin mendapatkan buku tertentu dengan semua penulis. Di bawah ini adalah kueri mentah yang memberikan hasil yang diharapkan. Tetapi saya tidak mendapatkan cara membuat kueri ini menggunakan Knexjs? Bantuan apa pun akan dihargai.

Catatan: Saya menggunakan Knexjs dengan javascript ES6.

Pertanyaan:-

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

ini adalah kueri yang saya coba buat menggunakan 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)

Tolong beritahu saya jika saya salah di suatu tempat?

question

Komentar yang paling membantu

Pertanyaannya adalah bagaimana cara membuat kueri gabungan bersarang menggunakan knexjs? Inner Join bersarang dengan Left atau Right JOIN menggunakan knex, sehingga knex dapat membangun query SQL seperti yang ditunjukkan di atas pada Query: section?

Semua 3 komentar

Pertanyaannya adalah bagaimana cara membuat kueri gabungan bersarang menggunakan knexjs? Inner Join bersarang dengan Left atau Right JOIN menggunakan knex, sehingga knex dapat membangun query SQL seperti yang ditunjukkan di atas pada Query: section?

@saurabhghewari apakah Anda pernah menemukan solusi untuk pertanyaan ini? Saya mencoba melakukan sesuatu yang serupa.

Saya harus mengatakan saya tidak yakin apakah knex mendukung gabungan bersarang sama sekali ... Saya tidak melihat tes atau dokumentasi untuk kasus itu, jadi saya cukup yakin mereka tidak didukung. Silakan tambahkan permintaan fitur untuk ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

npow picture npow  ·  3Komentar

legomind picture legomind  ·  3Komentar

koskimas picture koskimas  ·  3Komentar

mtom55 picture mtom55  ·  3Komentar

marianomerlo picture marianomerlo  ·  3Komentar