Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 11h02   #1
Membre habitué
 
Inscription : mai 2007
Messages : 691
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : mai 2007
Messages : 691
Points : 146
Points : 146
Par défaut conseil pour requete

bonjour,

je voudrais savoir si les 2 requetes suivantes sont equivalentes ou pas ?

1)avec une clause where

Code :
1
2
3
4
 
SELECT DISTINCT fournisseur.foidfour FROM fournisseur
JOIN achat ON achat.acidfour=fournisseur.foidfour
WHERE (achat.acdatliv BETWEEN :debut AND :fin) AND (achat.acetat=0 OR achat.acetat=1)
2) la selection est mise dans la condition de jointure

Code :
1
2
3
 
SELECT DISTINCT fournisseur.foidfour FROM fournisseur
JOIN achat ON achat.acidfour=fournisseur.foidfour AND (achat.acdatliv BETWEEN :debut AND :fin) AND (achat.acetat=0 OR achat.acetat=1)

En fait de ce que j'ai compris, le cas 2 est obligatoire en cas de jointure externe, mais je ne sais pas ce qui est conseillé dans le cas d'une joiture interne

cordialement


cordialement
looping est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 14h23   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 657
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 657
Points : 2 660
Points : 2 660
bonjour,

elles le sont.
Par contre la 1ère est plus logique d'un niveau norme.

Vos conditions de jointures ne sont pas vos conditions de restrictions.

Sinon, comme vous le dites, dans le cas d'une jointure externe les deux requêtes n'auront pas le même résultat.
punkoff est actuellement 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 09h06.


 
 
 
 
Partenaires

Hébergement Web