Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 11/06/2012, 12h09   #1
habes
Invité de passage
 
Inscription : juin 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2012
Messages : 3
Points : 0
Points : 0
Par défaut imbrication de requetes.

Bonjours,
J’ai deux tables:
directions(iddirections,direction) iddirections est la clé primaire.
services(idservices,iddirections,service) idservices est la clé primaire; iddirections est la clé étrangère qui lit les deux table
sachant que directions ---1,N---<>---1,1---services.

Est ce que les requêtes suivantes donneront le même résultat ?


requête 1:
Code :
1
2
3
4
5
6
SELECT * FROM
(SELECT services.idservices,services.iddirections,service
FROM services INNER JOIN directions ON
(services.iddirections=directions.iddirections)
WHERE direction=:d)
WHERE service=:s
requête2:
Code :
1
2
3
4
5
 
SELECT services.idservices,services.iddirections,service
FROM services INNER JOIN directions ON
(services.iddirections=directions.iddirections)
WHERE direction=:d AND service=:s
habes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2012, 12h16   #2
dehorter olivier
Membre Expert
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 933
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 933
Points : 1 257
Points : 1 257
oui, sauf que la requête 1 ne devrait pas fonctionner puisqu'aucun allias n'est indiqué pour la partie imbriquée, donc un problème avec :
Citation:
WHERE service=:s
Service va être inconnu
dehorter olivier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2012, 12h39   #3
habes
Invité de passage
 
Inscription : juin 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2012
Messages : 3
Points : 0
Points : 0
Citation:
Envoyé par dehorter olivier Voir le message
oui, sauf que la requête 1 ne devrait pas fonctionner puisqu'aucun allias n'est indiqué pour la partie imbriquée, donc un problème avec :

Service va être inconnu
si j'ai bien compris , la requête sera par exemple :

Code :
1
2
3
4
5
6
SELECT * FROM
(SELECT services.idservices,services.iddirections,service
FROM services INNER JOIN directions ON
(services.iddirections=directions.iddirections)
WHERE direction=:d) T
WHERE T.service=:s
habes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2012, 12h44   #4
dehorter olivier
Membre Expert
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 933
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 933
Points : 1 257
Points : 1 257
oui, mais elle ne sert a rien. Mais une requête imbriquée dans ce cas ne sert à rien
dehorter olivier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2012, 12h50   #5
habes
Invité de passage
 
Inscription : juin 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2012
Messages : 3
Points : 0
Points : 0
Oui c'est ce que je pensais moi aussi, j'ai trouvé cette requête en modifiant une application et je voulait être certain que ça ne servait à rien d'imbriquer, une simple jointure suffit.
Merci beaucoup.
habes est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


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


 
 
 
 
Partenaires

Hébergement Web