|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2009 Messages : 7 ![]() |
Bonjour à tous,
Je bosse sur une requête avec deux jointures et je m'étonne de ne pas récupérer le même nombre de résultats entre les deux requêtes pour les mêmes paramètres. Exple: Je n'utilise qu'une seule des deux jointures. Je ne sais pas si je suis très clair, je poste donc les deux requêtes: La requête avec les deux jointures: Code :
La requête avec l'une des deux seulement: Code :
Si quelqu'un pouvait éclairer ma lanterne, ça m'arrangerait sérieusement... Merci d'avance! |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Où est le problème ?
Ta première requête est plus restrictive (une jointure et une condition de plus) que la deuxième, donc logiquement, il y a moins de résultat sur la première que sur la deuxième. C'est quoi ces conditons : (1 = '1' OR o.ALE_CLE = '') <=> toujours vrai (1 = '0' OR rep.EQU_PRO_CLE = 3) <=> rep.EQU_PRO_CLE = 3 Pourquoi faire du transtypage 1 = '1' ??
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Citation:
Exemple et Code :
SELECT 1 FROM DUAL d, ALL_TABLES t WHERE t.owner ='SYSTEM'
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Citation:
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
|
10
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : février 2009 Messages : 7 ![]() |
Je viens de voir une erreur au sein de mon post précédent. Les nombres d'éléments comptés au sein des requêtes sont en réalité inversés:
1ère requête: 53k offres 2ème requête: 291k offres Ce que tu dis donc, 7gyY9w1ZY6ySRgPeaefZ, se vérifie au moins dans mon cas Citation:
En effet, la requête est plus restrictive mais si 1 = '1', l'argument n'est pas pris en compte. Je pensais qu'au final dans la première requête, jointure ou pas jointure, vu que je ne me sers pas de cette partie: (1 = '1' OR ouhm.unit_cle= '') pour argument ouhm.unit_cle étant null, je compterai un nombre d'éléments identique à celui trouvé avec la requête dans laquelle il n'est pas présent. Que les deux requêtes comptent donc 291061 offres. |
|
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : février 2009 Messages : 7 ![]() |
Bonjour à tous!
Des LEFT JOIN suffisaient, au final... Merci de vos réponses! Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com