|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Développeur informatique Inscription : mai 2006 Messages : 342 ![]() |
Bonjour à tous.
Je doit me remettre au SQL pour les besoins de mon employeur, et après quelques heures de recherche je me pose une question : -J'ai une requête (voir ci-dessous) qui comporte des jointures sur des codes. Selon si je fait mon test sur le code clé étrangère ou sur le code clé primaire, la requête ne me renvoie pas le même résultats ... pourtant c'est le même code dans les deux table (normal ... principe de la jointure Code :
Voila j'ai peut-être oublié une règle de base dans SQL ... quoi que je suis sous Paradox ... je suis pas sur que ça aide (oui je n'aime pas ce SGBDR )Donc pour résumé, si je test mon code sur le champ de la table "cv" ou sur celui de la table "ca", cela ne renvoie pas le même résultats alors que ses deux champs sont liés dans la requête. Si vous avez des remarques ou tout simplement pas compris je suis dispo. Merci d'avance à tous en tout cas.
__________________
Rien n'est rien!!! ... Tout est quelque chose!!! Petits liens utils : -Chaine de connexion : http://www.connectionstrings.com/ -ADO et ADO.net : Tuto ADO et ADO.net -Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html |
||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Développeur informatique Inscription : mai 2006 Messages : 342 ![]() |
Bon alors en fait après pas mal de tests et d'analyse de résultats j'ai trouvé pourquoi
![]() Donc pour faire simple : -Quand on fait le test sur le code clé étrangère, cela fait le test uniquement sur les enregistrement de la table contenant la clé étrangère. -Quand on fait le test sur le code de la clé primaire, cela fait le test sur la table contenant la clé primaire. => De ce fait dans une table comme dans l'autre on peux avoir différents enregistrements qui valide les conditions des clauses "WHERE" ... mais qui ne sont pas forcément dans l'autre table. Il faut donc bien faire le test sur la clé selon les données que l'on veux tester. Merci quand même à tous. Avec un peu de chance ce poste en aidera certain
__________________
Rien n'est rien!!! ... Tout est quelque chose!!! Petits liens utils : -Chaine de connexion : http://www.connectionstrings.com/ -ADO et ADO.net : Tuto ADO et ADO.net -Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html |
|
|
00
|
|
|
#3 |
![]() ![]() |
Le résultat de ton analyse est surprenant car tes jointures sont des jointures internes (INNER) donc, par définition et selon ta requête :
Ce qui fait que qu'une condition de restriction (dans le WHERE) sur l'une ou l'autre des colonnes faisant partie de la condition de jointure devrait donner le même résultat. On dirait que Paradox porte bien son nom si ton analyse est juste ! Autre chose que tu peux corriger dans ta requête : dans la mesure où tes jointures sont internes, ceci est une condition de restriction qui ne devrait pas figurer dans la condition de jointure (ON) mais dans la condition de restriction (WHERE) :
__________________
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 ! |
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Paradox est une base de données fichiers... Donc il fait ce qu'on lui demande... Pas d'optimiseur !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 |
|
Membre actif
![]() Développeur informatique Inscription : mai 2006 Messages : 342 ![]() |
Merci à tous les deux pour vos réponses
![]() Il me semblais bien que normalement avec les jointures il n'y avais pas de différence sur le test ... m'enfin du coup, dans le doute, maintenant je ferai attention En tout cas bonne continuation à tous les deux.
__________________
Rien n'est rien!!! ... Tout est quelque chose!!! Petits liens utils : -Chaine de connexion : http://www.connectionstrings.com/ -ADO et ADO.net : Tuto ADO et ADO.net -Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com