'TypeORM doesn't give a result
I have following query created by query Builder:
SELECT `meditation`.`id` AS `meditation_id`, `meditation`.`meditationDataId` AS `meditation_meditationDataId`, `meditation`.`userId` AS `meditation_userId`, `meditation`.`meditationDate` AS `meditation_meditationDate`, `meditation`.`duration` AS `meditation_duration`, `meditation`.`status` AS `meditation_status`, `meditation`.`createdAt` AS `meditation_createdAt`, `meditation`.`updatedAt` AS `meditation_updatedAt` FROM `zen_meditation` `meditation` WHERE `meditation`.`id` IN (SELECT MIN(`meditation`.`id`) FROM `zen_meditation` `meditation` WHERE `meditation`.`userId` = 19 AND `meditation`.`meditationDataId` = 1 AND `meditation`.`meditationDate` BETWEEN "2022-02-04" AND "2022-02-12" AND `meditation`.`status` = "complete" GROUP BY `meditation`.`meditationDate`);
When I manually try to get result by this query (via phpmyadmin) everything is ok. By queryBuilder gives me nothing:
await this.createQueryBuilder('meditation')
.select()
.where((qb) => {
qb.where(
'meditation.id IN ' +
qb
.subQuery()
.select('MIN(meditation.id)')
.from(MeditationEntity, 'meditation')
.where('meditation.userId = :userId', { userId })
.andWhere('meditation.meditationDataId = :meditationDataId', {
meditationDataId,
})
.andWhere(
'meditation.meditationDate BETWEEN ":startDate" AND ":endDate"',
{ startDate, endDate },
)
.andWhere('meditation.status = ":status"', {
status,
})
.groupBy('meditation.meditationDate')
.getQuery(),
);
})
.getRawMany(),
I've tried getRawMany() and getMany(), but still get nothing.
Solution 1:[1]
I decided to use plain query by this.manager.query instead this.createQueryBuilder()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | gachiKoKa |
