Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/05/2011, 17h15   #1
Invité régulier
 
Inscription : juin 2008
Messages : 36
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juin 2008
Messages : 36
Points : 5
Points : 5
Par défaut GROUP BY et tri

Bonjour,

La question a probablement été déjà posée, mais je ne comprends pas grand-chose aux réponses, il faudrait qu'on me réponde selon mon cas précis.

J'ai une table "fanarts" avec plusieurs colonnes dont "id" (identifiant de type varchar pas unique) et "ordre" (champ tinyint).
J'ai p.ex. :

Code :
1
2
3
4
5
6
7
8
id    ordre
---   -----
aaa    3
aaa    1
aaa    2
bbb    1
bbb    2
ccc    1
et la requête :
Code :
SELECT * FROM fanarts GROUP BY id
J'aimerais que la requête sélectionne tous les id groupés par id mais AVEC ordre = 1 (il y a forcément un 1 pour chaque id).

J'espère que mon explication est claire... Merci de votre aide.

Ariane
ArianeA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 05h13   #2
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 848
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 848
Points : 1 325
Points : 1 325
salut,
je pense que ça devrait faire ce que tu veux:
Code sql :
SELECT * FROM fanarts GROUP BY id HAVING ordre=1
mais bon le group by n'est utile que si tu as des fonctions ensemblistes sur les autres colonnes...

sinon:
Code sql :
SELECT * FROM fanarts WHERE ordre=1
sera plus simple et performant...

sans connaitre le reste des colonnes y a que toi qui pourras dire
ericd69 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h40   #3
Invité régulier
 
Inscription : juin 2008
Messages : 36
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juin 2008
Messages : 36
Points : 5
Points : 5
Effectivement un simple "SELECT * FROM fanarts WHERE ordre=1" suffit. Je dois juste être sûre que j'ai bien un ordre=1 pour chaque id. J'ai ajouté une requête pour faire ce contrôle.

Merci !

Ariane
ArianeA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h52   #4
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 848
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 848
Points : 1 325
Points : 1 325
pense toujours au plus simple et n'utilise les group by que si tu as vraiment une fonction ensembliste que ne soit pas sur une clé primaire par défaut genre id
ericd69 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h56.


 
 
 
 
Partenaires

Hébergement Web