Signification expression SQL - SQL/NoSQL - Programmation
Marsh Posté le 23-04-2008 à 10:23:07
Un opérateur += ?
Sauf erreur de ma part, c'est pas du SQL standard, tu utilises quelle base de données ?
Marsh Posté le 23-04-2008 à 10:27:52
Elmoricq a écrit : Un opérateur += ? |
J'utilise Oracle sous Toad. Cela permet de faire une contrainte dans une requête de type SELECT mais je ne vois pas ce que cela apporte réelement (bien que si je l'enlève, j'ai plus les même résultats)
Merci de m'avoir répondu!
Marsh Posté le 23-04-2008 à 10:35:29
ca correspond a un left outer join
Code :
|
est équivalent a:
Code :
|
je l'utilisais au début, me disant que cela allait être plus compacte, plus lisible tout ca, mais pour ma part j'en suis revenu, l'avantage des joins ansi est que tu sépares bien tes clauses de join de tes clause de filtrage, et pas un gros melting pot ou on ne capte juste plus ce que fait le where des que l'on travaille sur 6-7 tables avec 5-6 filtres
Marsh Posté le 23-04-2008 à 10:43:16
Merci beaucoup pour cette réponse! Je vais pouvoir enfin avancer dans mon boulot. J'aurais peut etre d'autres questions, alors restez dans le coin!
Encore merci
Marsh Posté le 23-04-2008 à 11:59:27
C'est encore moi!
J'aimerais savoir si sous Oracle la syntaxe "OUTER JOIN" passe, parce que quand j'essaye de faire une requête dessus il ne veut pas l'executer. Je suis sous Toad
Merci pour vos réponses
Marsh Posté le 23-04-2008 à 15:19:25
J'ai deja essayer avec left ou right, mais je crois que ma version d'oracle (8) ne le prend pas en compte. Tant pis, je vais rester avec mes (+)!
Merci de ton aide!
Marsh Posté le 25-04-2008 à 14:03:07
Elmoricq a écrit : Un opérateur += ? |
je comprends mieux pourquoi je me fais jeter de cette force dans les topics C
(+) est la syntaxe raccourcie d'Oracle pour faire des jointures externes.
A noter que le (+) n'est normalement pas collé au signe = mais en suffixe du champ utilisé pour la jointure "champ1 (+)= champ2" est donc valide, mais pas "champ1 =(+) champ2" qui s'écrit "champ1 = champ2(+)"
Avec SQL Server, l'équivalent c'est *= et =* et cette fois le * est bel et bien collé au signe =.
Dans tous les cas, il vaut mieux utiliser la syntaxe verbeuse de la norme SQL, à moins que les normes de devs sur votre projet ne vous l'interdisent. En effet, Oracle < 8i ne supportait pas ou mal la syntaxe verbeuse, donc fallait faire avec les moyens du bord. Pour cette raison, nombre d'anciens projets Oracle interdisent au niveau norme de développement la syntaxe verbeuse (pourtant bien moins limitée et plus lisible).
Marsh Posté le 23-04-2008 à 09:48:23
Bonjour a tous,
Petite question mais qui me bloque pour comprendre des requêtes SQL. Ques signifie le "(+)" dans une requête? Par exemple idToto(+)=idTutu?
Je vous remercie pour l'aide que vous pourrez m'apporter, je n'ai rien trouvé sur le net
Bonne journée