Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec 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 18/02/2011, 13h04   #1
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 0
Points : 0
Par défaut Problème de tri

Bonjour à tous.

Je suis confronté à un soucis de tri dans ma requête et je n'arrive pas à inclure une condition supplémentaire.

Voici la requête de base :

Code :
1
2
3
4
SELECT ag.nni_agent, ag.nom_agent, 
FROM commun_agent AS ag 
INNER JOIN commun_affecter AS af ON ag.nni_agent = af.nni_agent 
ORDER BY ag.nom_agent ASC
J'aimerai dans cette rajouter trier la table commun_agent (ag) en intégrant une prise en charge de champs supplémentaire tel que :

Code :
1
2
3
4
SELECT ag.nni_agent, ag.nom_agent, ag.num_fonct 
FROM commun_agent AS ag 
INNER JOIN commun_affecter AS af ON ag.nni_agent = af.nni_agent 
ORDER BY ag.nom_agent ASC
Et ensuite vient le soucis j'aimerai avant toute chose trier par num_fonct. J'avais pensé à :

Code :
1
2
3
4
5
SELECT ag.nni_agent, ag.nom_agent, ag.num_fonct 
WHERE num_fonct=0 
FROM commun_agent AS ag 
INNER JOIN commun_affecter AS af ON ag.nni_agent = af.nni_agent 
ORDER BY ag.nom_agent ASC
Avec le WHERE num_fonct=0 la requete ne fonctionne plus, auriez vous une idée ?

Merci par avance !

Tux
Cortux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 13h35   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Le WHERE vient après INNER JOIN, pas avant !

Citation:
Et ensuite vient le soucis j'aimerai avant toute chose trier par num_fonct.
Avec WHERE, tu ne fais pas un tri mais une restriction. La colonne ag.num_fonct retournera toujours zéro puisque c'est ta condition de restriction.

Tu ne veux que les ag.num_fonct = 0 ou bien trier, classer, ordonner (ORDER BY) ag_num_fonct ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 14h00   #3
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 0
Points : 0
Je me disais que je devais seulement selectionner les num_fonct=0 et les num_fonct=1 avant de faire la jointure et selectionner parmis ce résultat d'autres selections. Apparement c'est pas logique

En gros j'ai X agents et j'aimerai choisir les num_function=0 et num_fonct=1 de la table commun_agent. Ensuite parmis ces agents selectionnés, les faire correspondre selon le paramètre nni entre deux tables.
Cortux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 15h13   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
et bien :
Code :
WHERE num_fonct IN(0, 1)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 16h09   #5
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 0
Points : 0
Ca marche impeccable merci beaucoup CinePhil
Cortux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h08.


 
 
 
 
Partenaires

Hébergement Web