gibea00
Messages postés17Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention13 novembre 2007
-
30 avril 2007 à 20:25
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 2012
-
1 mai 2007 à 00:15
Salut!
J'ai une requête SQL qui ne me retourne pas exactement ce que je veux. Présentement, j'ai remarqué que si une des deux partie de ma requête n'a pas de données, ma requête au complet ne retourne rien.
Cependant, je voudrais qu'elle retourne toutes les données retrouvées peut importe si une des deux parties ne retourne rien.
voici la preuve concrète du manque d'ascensceur horizontal optionel (j'ai bien dit "optionnel", parce que parfois, il vaut mieux avoir le choix [NIX, si tu nous regardes :)]).
Bon, il semble que tu aies peut-être besoin de changer de mode de jointure (celle-ci est la forme dite "naturelle" de la jointure, elle a pour résultats les lignes des 2 tables ayant correspondance au vu des critères de la jointure).
En effet, il existe (depuis SQL-92) la jointure externe, dont la principale qualité est de fournir, dans le résultats, des lignes ne répondant pas à tous les critères.
Elle existe sous (au moins) 3 formes, l'externe gauche (LEFT OUTER JOIN), l'externe droit (RIGHT OUTER JOIN), et l'externe centriste (non, j'rigole, la 3ème est l'externe complète [FULL OUTER JOIN]).
La jointure externe gauche tire son nom du fait qu'elle affiche toutes les lignes de la table située à gauche de la jointure, avec en face, les lignes de la table de droite si elles existent, la jointure externe droit fait bien évidemment le contraire, et la jointure externe complète fait un mix des 2.
Au niveau de la syntaxe pour les utiliser, elle dépend souvent du SGBD qui les implémente, mais la plus courante (en SQL-92) est :
SELECT Machin
FROM Trucs LEFT OUTER JOIN Bidules ON Trucs.ID = Bidules.ref
En SQL-89, on trouve aussi des trucs exotiques, des expressions NULL dans la sélection, ou des "égalités étendues" (avec des signes autour du signe égal de jointures, genre *ou* ou +=...).
voilà, espérant t'aider,
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>