TypeORM QueryRunner 选择不同

Dha*_*shi 8 mysql node.js typeorm

下面是我的 SQL 查询:

从orders left 中选择不同的ports.port_name 加入port_master on orders.officeId = ports.portId;

如何使用 typeorm 查询运行器编写以上 SQL 以选择不同的端口名称?以下语法获取所有端口

await queryRunner.manager.find(Orders, {relations: ["ports"], where: filter }).then((result: any) => { orders = result; });

小智 27

如果您使用Postgresql,您可以使用distinctOn查询,如下所示:

await getRepository(Feed)
      .createQueryBuilder('feed')
      .where({ uploaderId: In([1,2,3,4]) })
      .distinctOn(['feed.uploaderId'])
      .orderBy({ 'feed.uploaderId': 'ASC', 'feed.createdAt': 'DESC' })
      .getMany()
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,有一个Feed表,我想获取给定数组中存在的 Id 行,并区分值,uploaderId然后按createdAt日期排序


Žel*_*vić 12

另一种方法是使用查询构建器和distinct方法

await this.createQueryBuilder('entity name')
  .select('column')
  .distinct(true)
  .getRawMany();
Run Code Online (Sandbox Code Playgroud)


小智 1

await this.createQueryBuilder("Entity name")
  .select('DISTINCT ("column")')
  .getRawMany();
Run Code Online (Sandbox Code Playgroud)