Info sur + - SQL/NoSQL - Programmation
Marsh Posté le 01-07-2005 à 10:49:17
Et la requête elle est ou?
Marsh Posté le 01-07-2005 à 10:55:37
J'ai du mal m'expliquer : Ma question ne se pose pas sur la requete, mais sur un éventuel opérateur "( + )" ou "( - )" qui existerait, et dont je n'ai jamais entendu parler.
Je voudrai juste savoir à quoi cela correspond. Je vérifirai apres que c'est une solution appropriée à mon probleme.
Marsh Posté le 01-07-2005 à 10:58:29
tekbright a écrit : J'ai du mal m'expliquer : Ma question ne se pose pas sur la requete, mais sur un éventuel opérateur "( + )" ou "( - )" qui existerait, et dont je n'ai jamais entendu parler. |
Faire des additions et des soustractions ??? hors contexte et sans le type de base ni la requete ni ce que tu veux faire, peux pas etre plus precis...
Marsh Posté le 01-07-2005 à 11:02:41
Sous Sybase on peut concatener des chaînes avec '+'.
Mais sinon, clair que sans plus d'information, ça va être dur.
Marsh Posté le 01-07-2005 à 11:05:43
sous oracle -- ca met en commentaire
precise ou moins sous quel sgbd tu es ?
Marsh Posté le 01-07-2005 à 11:06:15
Bon, j essaye de préciser.
J'ai une requete qui prend des info sur des tables A,B et C.
Dans ma requete, si l'info est dans les trois tables, c'est bon, mais sinon, elle n'afficher rien ( genre elle n'est que dans A et B, etc).
Donc on m'a di qu'il y aurait une sorte d'opérateur, du genre :
where a.champ = b.champ (+) and a.champ = c.champ
et que le (+) permetterait d'éviter que la jointure "bloque" les résultats si celle-ci n'existe pas.
Si c'est toujours pas clair, dite le, j'ai un peu de mal a expliquer ce que je veux.
Marsh Posté le 01-07-2005 à 11:08:10
Je suis sous
access.
Donc je n'ai jamais entendu parler de cette fonctionalité, et si elle existe, il y a des grandes chance qu'elle ne marche pas sous access, mais bon, j essaye quand meme.
Marsh Posté le 01-07-2005 à 11:29:19
Sous Oracle, ça permet de faire des jointures externes.
Exemple:
SELECT A.VALUE, B.VALUE FROM A, B
WHERE A.ID = B.ID(+);
Ca renvoie toutes les valeurs du champ VALUE dans A, et si l'ID de A existe dans B, alors ça renvoie aussi la valeur du champ VALUE dans B.
Marsh Posté le 01-07-2005 à 11:34:42
ok, exactement ce qu'il me fallait.
Reste plus qu'a vérifier que ca marche dans access... ce dont je doute fortement.
Merci beacoup !
Marsh Posté le 01-07-2005 à 11:37:17
Il me semble que c'est une syntaxe propre à Oracle.
Dans la plupart des autres SGBD, on utilise LEFT JOIN.
Marsh Posté le 01-07-2005 à 11:47:23
Oui, c'est que j'était en train de regarder, reste plus qu'à l appliquer à mon probleme.
Merci encore !
Marsh Posté le 01-07-2005 à 11:52:33
beegee > ça marche aussi sous postgre, et sql server utilise *= et =* à la place (avec l'* du côté opposé de là où on met le (+) sous Oracle, c'est pratique comme truc )
Marsh Posté le 01-07-2005 à 14:30:31
Bon, maintenant je galere sur Left join
Quand je met ceci :
Code :
|
il me mets "Expression de jointure non suporté"
Une idée pour parrer à ceci ? ( c'est juste deux table relié par "champB" )
Marsh Posté le 01-07-2005 à 15:46:30
Normalement ce serait plutôt :
select *
from table1
left join table2 on table2.champB = table1.champB
C'est la syntaxe mySql, je sais pas ce que ça donne sous Access ...
Marsh Posté le 01-07-2005 à 17:05:55
@arjuna => tu est sûr que le (+) marche aussi sous postgre ??
depuis quelle version ??
Marsh Posté le 01-07-2005 à 17:10:18
hmmmm... je peux pas l'affirmer à 100%, parceque j'en ai pas sous la main, mais il me semble que j'en ai fait y'a pas longtemps. mais c'est possible que je me plante, tout comme c'est possible que ça vienne d'un package additionnel (c'est pas moi qui l'ai installé)
Marsh Posté le 01-07-2005 à 17:11:09
en tout cas, si c'est pas le (+), alors c'est le =* qu'il supporte, je suis sûr et certain qu'il en supporte un des deux.
Marsh Posté le 01-07-2005 à 17:12:46
tout comme il supporte le "complete outer join", que ne supportent ni Oracle ni SQL Server, alors que c'est dans la norme SQL :
toutes les lignes de A avec ou sans B et toutes les lignes de B avec ou sans A
Avec SQL Server, faut faire ça à la place :
Code :
|
Marsh Posté le 01-07-2005 à 10:48:15
Bonjour,
J'ai un probleme sur une requete, et quelqu'un m'a dit que la solution serait dans un opérateur ( + ) ou ( - ), il ne se rappelle plus exactement comment cela fonctionne, et je n'en ai jamais entendu parler.
Si vous pouviez m'expliquer si cet opérateur existe, si vous connaissez son nom, et à quoi il correspond ? ( une recherche dans google avec + et - est pas évidente ... )
Merci d'avance !