const consultant = await consultantRepository
.createQueryBuilder()
.select([
'consultant.created_at',
'consultant.id',
'consultant.department',
'consultant.specialization',
'consultant.bmdc_no',
'consultant.experience',
'consultant.bio',
'consultant.degrees',
'consultant.fee',
'consultant.average_rating',
'consultant.patient_treated',
'consultant.status',
'review.id',
'review.rating',
'review.comment',
'review.created_at',
])
.from(Consultant, 'consultant')
.where('consultant.id = :id', { id })
.andWhere('consultant.status = :status', { status: 'active' })
.leftJoin('consultant.review_consumed', 'review')
.orderBy('review.created_at', 'DESC')
.take(1)
.getOne()
Suppose there are seven rows with oneToMany relationship with review_consumed table. I wanted to get a single row so I wrote .take(1)
here but got all.