5
votes

TypeORM QueryRunner Select distinct

Voici ma requête SQL:

Sélectionnez différents ports.port_name parmi les commandes restantes, rejoignez port_master sur commandes.officeId = ports.portId;

Comment écrire ci-dessus SQL en utilisant le typeorm query runner pour sélectionner le nom de port distinct? La syntaxe ci-dessous récupère tous les ports

attendez queryRunner.manager.find (Commandes, { relations: ["ports"], où: filtre }). then ((result: any) => { commandes = résultat; });


0 commentaires

3 Réponses :


1
votes
await this.createQueryBuilder("Entity name")
  .select('DISTINCT ("column")')
  .getRawMany();

0 commentaires

1
votes

Au lieu d'utiliser la requête brute, vous pouvez également utiliser le générateur de requêtes mentionné ci-dessous

await getManager().createQueryBuilder(orders , "odrs")
.leftJoinAndSelect(ports, "pts", "odrs.officeId = pts.portId")
.select('DISTINCT odrs.port_name', 'port_name')
.orderBy("odrs.port_name", "ASC")
.getRawMany();

Merci


0 commentaires

7
votes

Une autre façon de procéder consiste à utiliser le générateur de requêtes et la méthode distinct

await this.createQueryBuilder('entity name')
  .select('column')
  .distinct(true)
  .getRawMany();


0 commentaires