Multiples DISTINCT dans une requête..possible ?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Multiples DISTINCT dans une requête..possible ?

Message le Dim Aoû 31, 2008 13:42

Salut,

Est il possible de 'caser' plusieurs 'DISTINCT' dans une requête sql en jointure ?

Code: Tout sélectionner
$query0 = mysql_query("SELECT L.region, L.departement, L.ville, T.situation FROM TYPE_DE_LOCATION T, LOCALISATION L WHERE T.id = L.Id AND T.situation = 'bord_de_mer' ORDER BY L.region ASC");


Je pensais un truc du style:

Code: Tout sélectionner
$query0 = mysql_query("SELECT DISTINCT( L.region), DISTINCT(L.departement), DISTINCT(L.ville), T.situation FROM TYPE_DE_LOCATION T, LOCALISATION L WHERE T.id = L.Id AND T.situation = 'bord_de_mer' ORDER BY L.region ASC");

...mais se ne marche pas ^^.
Comment dois-je procéder sur ce genre de requête pour que chaque résultat soit bien distinct svp ?
Merci

mahdivitche
WRInaute impliqué
WRInaute impliqué
 
Messages: 967
Inscription: 6 Jan 2008

Message le Dim Aoû 31, 2008 16:11

il est trés difficile ( ou impossible ) de distinct 3 champ dans une table :
en prend par exemple :

region --- departement

regA --- de1
regB ---- de2
regC ---- de1
regD ---- de3

donc region a été distinct mais departement non même chose pour ville

la mielleur methode est du crée trois tables : region , table departement et table ville.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Dim Aoû 31, 2008 16:30

Sinon il y a toujours le GROUP BY avec lequel tu peux grouper les résultats identiques sur plusieurs champs. Mais je sais pas si dans ton cas tu peux l'utiliser.


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Message le Dim Aoû 31, 2008 16:44

Ha, chiote ^^.
Vue que j'ai pas envie de me retaper la table, je vais faire sans 'DISTINCT'.
Donc un 'distinct' ne peut s'utiliser qu'une seule fois dans une requête ?
Merci de vos réponses


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Dim Aoû 31, 2008 16:53

hello,

un truc a du m'échapper, mais pourquoi ne pas faire simplement ça :
Code: Tout sélectionner
SELECT distinct L.region, L.departement, L.ville, T.situation
FROM TYPE_DE_LOCATION T, LOCALISATION L
WHERE T.id = L.Id
AND T.situation = 'bord_de_mer'
ORDER BY L.region ASC


Chaque "ligne" sera distincte... ce n'est pas ce que tu cherches ?


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Dim Aoû 31, 2008 17:13

Un distinct n'agit pas sur un champ, c'est normal. Il vire les lignes identiques pour qu'il n'en reste qu'une seule.
Evidemment si tu n'affiches qu'un champ, ligne = champ ;)


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Message le Dim Aoû 31, 2008 17:28

J'ai déjà essayé Bool, mais sa m'affiche les doublons .
Suite à la requêtes, j'affiche 3 champs.

Merci quand même ^^.


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Dim Aoû 31, 2008 17:31

Ok tryan, je n'ai vraiment rien compris de ce que tu cherchais à faire alors :P


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Message le Dim Aoû 31, 2008 17:48

Je pense que tu as au contraire bien compris ^^.
Je voulais afficher de façon distincte les résultats des champs region, departement et ville mais visiblement compte tenue de la disposition de mes tables, la requête avec DISTINCT ne peut se faire.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités