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; });
3 Réponses :
await this.createQueryBuilder("Entity name")
.select('DISTINCT ("column")')
.getRawMany();
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
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();