DISTINCT sur un seul champ, parmi plusieurs champs
Jeremyb36
-
Jeremyb36 -
Jeremyb36 -
Bonjour,
Je vous sollicite, j'ai un souci concernant la méthode DISTINCT. J'ai une requête SQL sous forme d'un framework PHP (Zend). Je résume ma table,
Dans la forme, chaque idTiers peut posséder plusieurs mails (MailTiers) et plusieurs numéros téléphones(TelephoneTiers). Seulement en l'état actuel, cela me sort en résultat plusieurs lignes avec plusieurs mêmes numéros téléphones pour le même idTiers.
Ce que je recherche, c'est de faire en sorte que chaque numero de téléphone d'un idTiers soit unique, avec d'autres numéros de téléphone différents (exemple, une ligne d'un numéro de téléphone fixe, une ligne d'un numéro de téléphone portable, et une ligne d'un numéro de fax). Et je veux pouvoir mettre un DISTINCT sur la table TelephoneTiers.
Pour le moment, je n'ai pas mis de DISTINCT, afin que vous puissez visualiser la requête.
Merci d'avance pour votre/vos aide(s)!
Je vous sollicite, j'ai un souci concernant la méthode DISTINCT. J'ai une requête SQL sous forme d'un framework PHP (Zend). Je résume ma table,
public function getByDemande($idDemande, $typeTiers) {
$select = $this -> newSelect(true);
$select -> from(array('d' => 'Demande'));
$select -> join(array('s' => 'Suivi'), 'd."idDemande" = s."idDemande"');
$select -> join(array('t' => $typeTiers),'d."idContact" = t."idTiers"');
$select -> joinLeft(array('tet' => 'TelephoneTiers'), 't."idTiers" = tet."idTiers"');
$select -> joinLeft(array('mt' => 'MailTiers'), 't."idTiers" = mt."idTiers"');
$select -> join(array('at' => 'AdresseTiers'), 't."idTiers" = at."idTiers"');
$select -> where('d."idDemande" = s."idDemande"', $idDemande);
$select -> where('d.actif is true');
$select -> order('s.dateHeure DESC');
//$resultat = $select->__toString();
//echo "$resultat\n";
return $this->fetchAll($select);
}
Dans la forme, chaque idTiers peut posséder plusieurs mails (MailTiers) et plusieurs numéros téléphones(TelephoneTiers). Seulement en l'état actuel, cela me sort en résultat plusieurs lignes avec plusieurs mêmes numéros téléphones pour le même idTiers.
Ce que je recherche, c'est de faire en sorte que chaque numero de téléphone d'un idTiers soit unique, avec d'autres numéros de téléphone différents (exemple, une ligne d'un numéro de téléphone fixe, une ligne d'un numéro de téléphone portable, et une ligne d'un numéro de fax). Et je veux pouvoir mettre un DISTINCT sur la table TelephoneTiers.
Pour le moment, je n'ai pas mis de DISTINCT, afin que vous puissez visualiser la requête.
Merci d'avance pour votre/vos aide(s)!
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, suggestion:joinLeft(array('tet' => 'TelephoneTiers'), 't."idTiers" = tet."idTiers"', 'DISTINCT tel')
tel étant le nom du champ à récupérer dans la table TelephoneTiers