如何将此 Postgres 查询转换为 typeorm 查询生成器

问题描述 投票:0回答:1

我的目标是从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
  `)

它给了我另一个结果,它选择创建的用户列表而不是创建者。 谢谢你

sql postgresql typeorm query-builder
1个回答
0
投票

我想我找到了解决方案。确实,查询在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
  `) 
© www.soinside.com 2019 - 2024. All rights reserved.