【问题标题】:How i can make a distinct in leftJoin using adonis/node.js?我如何使用 adonis/node.js 在 leftJoin 中做出区分?
【发布时间】:2020-03-22 04:59:30
【问题描述】:

我正在尝试在 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",…}

【问题讨论】:

    标签: node.js adonis.js


    【解决方案1】:

    尝试使用不带参数的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);
    

    文档here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多