#javascript #sql #typeorm
Вопрос:
Я пытаюсь понять, как объединить страницы и выбрать только последнюю. У меня ошибка «идентификатор с разделителями нулевой длины в или рядом «»»»»» в этом запросе. В чем проблема?
return this.createQueryBuilder('page')
.leftJoin(
qb =>
qb.from(PageContent, 'PageContent')
.select('MAX(PageContent."createdAt")', 'created_at')
.addSelect('PageContent."pageId"', 'page_id')
.groupBy('"page_id"'),
'"last_version"',
'"last_version"."page_id" = page.id'
)
.leftJoinAndSelect('page.pageContents', '"PageContent"', '"PageContent."createdAt" = "last_version"."created_at"')
.where('page.id = :id', { id: id })
.getOne();
Комментарии:
1. я все исправил. правильный запрос: верните это.createQueryBuilder(‘страница’) .leftJoin( qb => qb.from(PageContent, ‘содержимое’) .выберите(‘MAX(«содержимое».»createdAt»)’, ‘created_at’) .addSelect («содержимое».» pageId», «идентификатор страницы») . groupBy («идентификатор страницы»), «последняя версия», «последняя версия».»идентификатор страницы» = page.id’ ) .leftJoinAndSelect(‘page.pageContents’, ‘pageContents’, ‘»pageContents».»createdAt» = «last_version».»created_at»‘) . где(‘page.id = :id’, { id: id }) .getOne();
2. вы могли бы ответить на свой собственный вопрос (вместо того, чтобы публиковать его в качестве комментария). поможет другим с теми же проблемами, и вы сможете зарабатывать повторения.