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 12/02/2011, 17h33   #1
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Par défaut ORDER BY modelId (mais faire tri par nom du modele)

Bonjour,

Code :
SELECT var1, var2 FROM mon_autre_table ORDER BY modelId ASC
Nous savons que cette requête simple permet de trier par ordre croissant des ID (modelId)

Cependant, modelId fait référence à l'id d'une table (models) qui contient les champs "id" et "title"

Comment faire pour avoir la même requête qu'ici au dessus mais qu'au lieu de trier par modelId ça trie par le "title" de l'autre table?

J'avais penser aux requêtes imbriquées, mais je ne sais pas si c'est possible dans un ORDER BY?

Je sais qu'un INNER JOIN ou LEFT JOIN ferait très bien l'affaire mais j'aimerais savoir si il y a une alternative car je ne peux que modifier la partie ORDER BY de la requête...

Merci pour votre aide!
__________________
Solutions pour concessions et garages automobiles =>
http://www.fastback.be
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 11h58   #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 SGBD ne peut travailler que ce sur quoi la requête le lui impose.
Comme tu ne disposes que de la clé étrangère, tu ne peux pas remonter à la table de référence sans faire la jointure dans la requête.
__________________
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 14/02/2011, 12h18   #3
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Je viens de tester, ça marche avec une sous-requête :

Code :
1
2
3
SELECT var1, var2 
FROM mon_autre_table 
ORDER BY (SELECT title FROM ma_table WHERE ma_table.Id = mon_autre_table.modelId ) ASC
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 12h20   #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
Citation:
Envoyé par Antoun Voir le message
Je viens de tester, ça marche avec une sous-requête :

Code :
1
2
3
SELECT var1, var2 
FROM mon_autre_table 
ORDER BY (SELECT title FROM ma_table WHERE ma_table.Id = mon_autre_table.modelId ) ASC
Ça ressemble fort à une sous-requête corrélée ça non ?
J'espère que les tables de Sayrus ne sont pas trop grosses, sinon bonjour les performances !
__________________
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 14/02/2011, 12h33   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Citation:
Envoyé par CinePhil Voir le message
Ça ressemble fort à une sous-requête corrélée ça non ?
Je pense qu'on peut même aller jusqu'à dire que c'est une !

Citation:
Envoyé par CinePhil Voir le message
J'espère que les tables de Sayrus ne sont pas trop grosses, sinon bonjour les performances !
Oui, même avec du moyennement gros, la perf peut être catastrophique.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 15h01   #6
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Merci pour vos réponses!

Donc en gros, une sous requête dans le ORDER BY est à éviter...

Je vais donc devoir faire une jointure ce qui va être un peu plus embêtant mais pas impossible...

Merci!
__________________
Solutions pour concessions et garages automobiles =>
http://www.fastback.be
Sayrus 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 10h03.


 
 
 
 
Partenaires

Hébergement Web