[英]How i can make a distinct in leftJoin using adonis/node.js?
我試圖在 leftJoin 中區分,但.distinct()
似乎不適用於我的上下文。
我有這個查詢:
const questions = Database
.query()
.select('book_unit_question.*')
.select('book_unit.unit')
.select('book_unit.sequence')
.select('books.id as book_id')
.select('book_unit_question_option.description as correct_answer_description_id')
.select('users.username')
.from('book_unit_question')
.leftJoin('book_unit_question_option', 'book_unit_question.id', 'book_unit_question_option.book_unit_question_id')
.distinct('book_unit_question.id')
.innerJoin('book_unit', 'book_unit.id', 'book_unit_question.book_unit_id')
.innerJoin('books', 'books.id', 'book_unit.book_id')
.innerJoin('users', 'book_unit_question.user_id', 'users.id')
.where('books.id', '=', request.params.id)
但是當我得到結果時,我重復了book_unit_question.id
:
0: {id: 11, book_unit_id: 2, question_form: "Texto", option_form: "Texto",…}
1: {id: 11, book_unit_id: 2, question_form: "Texto", option_form: "Texto",…}
2: {id: 11, book_unit_id: 2, question_form: "Texto", option_form: "Texto",…}
3: {id: 12, book_unit_id: 2, question_form: "Texto", option_form: "Texto", type_answer: "Aberta",…}
我只需要:
0: {id: 11, book_unit_id: 2, question_form: "Texto", option_form: "Texto",…}
1: {id: 12, book_unit_id: 2, question_form: "Texto", option_form: "Texto", type_answer: "Aberta",…}
嘗試使用不帶參數的distinct()
:
const questions = Database
.from('book_unit_question')
.select('book_unit_question.*', 'book_unit.unit', 'book_unit.sequence', 'books.id as book_id', 'book_unit_question_option.description as correct_answer_description_id', 'users.username')
.distinct()
.leftJoin('book_unit_question', 'book_unit_question.id', '=', 'book_unit_question_option.book_unit_question_id')
.join('book_unit', 'book_unit.id', '=', 'book_unit_question.book_unit_id')
.join('books', '=', 'books.id', 'book_unit.book_id')
.join('users', '=', 'book_unit_question.user_id', 'users.id')
.where('books.id', '=', request.params.id);
文檔在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.