Knex: рдХреНрдпрд╛ рдиреЗрд╕реНрдЯреЗрдб рдЬреЙрдЗрди рдХреНрд╡реЗрд░реА рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЕрдкреНрд░реИрд▓ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рд╣рд╛рдп, Knexjs рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдорд╣рд╛рди рдХрд╛рдоред рдореИрдВ ORM рдкрд░ knexjs рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╕рдВрдмрдВрдз рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдЦрдХреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХреЛрдВ рдХрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд▓реЗрдЦрдХ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдИ рдЯреЗрдмрд▓ рдФрд░ рдмреБрдХ рдЯреЗрдмрд▓ рдХреЗ рдХрдИ рд╕рдВрдмрдВрдз рд╣реИрдВред рдореИрдВ рд╕рднреА рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдиреАрдЪреЗ рдХрдЪреНрдЪреА рдХреНрд╡реЗрд░реА рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдиреЗрдХреНрд╕рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреНрд╡реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ? рдХрд┐рд╕реА рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдиреЛрдЯ: рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ ES6 рдХреЗ рд╕рд╛рде 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)

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХрд╣реАрдВ рдЧрд▓рдд рд╣реВрдВ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯрдЬреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП? рдЗрдирд░ рдиреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЗрдлреНрдЯ рдпрд╛ рд░рд╛рдЗрдЯ рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рдЬреБрдбрд╝реЗрдВ, рддрд╛рдХрд┐ рдХреНрд▓реЗрд░реА SQL рдХреНрд╡реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХреЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХреНрд╡реЗрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЕрдиреБрднрд╛рдЧ?

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯрдЬреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП? рдЗрдирд░ рдиреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЗрдлреНрдЯ рдпрд╛ рд░рд╛рдЗрдЯ рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рдЬреБрдбрд╝реЗрдВ, рддрд╛рдХрд┐ рдХреНрд▓реЗрд░реА SQL рдХреНрд╡реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХреЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХреНрд╡реЗрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЕрдиреБрднрд╛рдЧ?

@saurabhghewari рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рд╣рд▓ рдЦреЛрдЬрд╛? рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдиреЗрдХреНрд╕ рдиреЗрд╕реНрдЯреЗрдб рдЬреЙрдЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ... рддреЛ рдореИрдВрдиреЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рдирд╣реАрдВ рджреЗрдЦрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдЬреЛрдбрд╝реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕