我想检索一个维护列表,按ids区分并按日期排序。
基本上,我正在尝试转换这个SQL查询(在PostgreSQL下):
SELECT * FROM
(
SELECT DISTINCT m.id, *
FROM maintenances AS m
LEFT JOIN maintenance_items AS mi ON mi.maintenance_id = m.id
LEFT JOIN maintenance_types AS mt ON mi.type = mt.id
WHERE bike_id = '152cd134-c868-4a9e-ad49-691569f5786d'
) AS foo
ORDER BY foo.m_date;作为TypeORM查询。我试过这个:
DbConnection.manager
.createQueryBuilder<Maintenance>(Maintenance, 'maintenances')
.select('*')
.from(qb => qb.subQuery()
.select('*')
.from(Maintenance, 'maintenances')
.where('maintenances.bikeID = :id', { id: id })
.leftJoinAndSelect('maintenances.items', 'maintenance_items')
.leftJoinAndSelect('maintenance_items.type', 'maintenance_types')
.distinctOn(['maintenances.id']), 'foo')
.orderBy('foo.m_date', 'DESC')我得到了这个错误:无法获取给定别名"foo“的实体元数据。找不到原因。
发布于 2021-07-06 13:24:40
您可以使用getrawOne()来检索数据。这不会显示错误。
https://stackoverflow.com/questions/67204028
复制相似问题