Précédent   Forum du club des développeurs et IT Pro > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/12/2012, 13h34   #1
xzéna
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 186
Points : 29
Points : 29
Envoyer un message via MSN à xzéna
Par défaut distinct sur deux champs

Salut,
Je veux afficher sur mon tableau des noms de médecin mais en évitant les doublons, alors j'ai utilisé cette requête :
Code :
1
2
3
4
5
SELECT DISTINCT id,nom 
FROM visite 
WHERE id_representant = '23' 
  AND date_visite BETWEEN '2012-01-01' AND '2012-12-01' 
ORDER BY medecin ASC
Le problème, c'est que dans l'affichage,il m'affiche bien les id uniques, mais non les noms. Alors, je veux savoir comment faire pour que le DISTINCT inclut aussi les noms ?
Sachant que j'en ai besoin de distinct sur les deux champs.
Merci d'avance pour votre aide.
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2012, 10h37   #2
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 659
Points : 25 573
Points : 25 573
Envoyer un message via MSN à CinePhil
DISTINCT opère sur toutes les colonnes du SELECT.

Je suppose que id est l'identifiant de la visite et qu'un médecin peut faire plusieurs visites donc être présent plusieurs fois dans la table mais comme chaque identifiant de visite est unique, ce DISTNCT est inutile car il va retourner toutes les lignes de la tables.

Puisque vous voulez les médecins et non pas les visites, supprimez id du SELECT.

Au passage, au lieu du nom du médecin dans la table des visites, vous devriez avoir une clé étrangère référençant l'identifiant du médecin de la table des médecins. Laisser le nom dans la table des visites est le meilleur moyen d'avoir un jour plusieurs fois le même médecin aec des orthographes différentes, et donc plusieurs fois le même médecin dans votre requête.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 16h26   #3
xzéna
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 186
Points : 29
Points : 29
Envoyer un message via MSN à xzéna
La requête en haut m'affiche bien id non en double , mais les noms si!
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 14h15   #4
Gannox
Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 89
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 89
Points : 65
Points : 65
Ce que l'on essaie de vous dire, c'est que si la colonne "Id" est la clé primaire (identifiants uniques) de votre table "VISITE", il est donc inutile de vouloir supprimer des doublons dans une colonne qui ne possède obligatoirement pas de doublons !

Pour ce qui est de la colonne "Nom", c'est une colonne qui peut bien entendu posséder des doublons et donc votre requête doit simplement ressembler à cela :

Code :
1
2
3
4
5
SELECT DISTINCT nom 
FROM visite 
WHERE id_representant = '23' 
  AND date_visite BETWEEN '2012-01-01' AND '2012-12-01' 
ORDER BY medecin ASC
Cette manière de faire est à utiliser dans le cas où la colonne "Id" est réellement l'identifiant de la table. A vous de le confirmer.
Gannox est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/12/2012, 16h45   #5
xzéna
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 186
Points : 29
Points : 29
Envoyer un message via MSN à xzéna
c'est pas l'id de cette table,mais d'une autre
en tout cas merci,j'ai résolu le problème
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h07.


 
 
 
 
Partenaires

Hébergement Web