我的目标是从USER表中选择用户,其中userId = user_id_creator(谁创建了用户,某些用户可以根据用户角色创建其他用户) 我需要将此 Postgres SQL 查询转换为 TypeOrm 查询生成器
select DISTINCT ON (u1.id) *
from public.user as u1
inner join public.user as u2
on u1.id = u2.created_by
我在 Postgres 中执行它,它工作正常,我得到了创建其他用户的用户列表。 但是当我像这样在 TypeOrm 中转换它时:
const rawData = AppDataSource.manager.query(`
select DISTINCT ON (u1.id) *
from public.user as u1
right join public.user as u2
on u1.id = u2.created_by
`)
它给了我另一个结果,它选择创建的用户列表而不是创建者。 谢谢你
我想我找到了解决方案。确实,查询在TypeOrm上不起作用,因为我没有指定要选择哪些列,在自连接表时选择所有列,总是给我从右边开始的列,所以我的解决方案是以这种方式指定要选择哪些列:
const rawData = AppDataSource.manager.query(`
SELECT DISTINCT ON (u1.id) u1.id, u1.email
FROM public.user as u1
INNER JOIN public.user as u2
ON u1.id = u2.created_b
`)