Requete jointure externe
letissya
Messages postés
89
Statut
Membre
-
blux Messages postés 27997 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27997 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous...
j'ai une petite question pour la construction d'une requete
j'ai deux tables :
VOL (cle_vol, date_vol, immatriculation_vol)
MESSAGE(cle_message, cle_vol)
et j'aimerais avoir la liste des vols à partir d'une date et savoir si un message particulier est sur le vol, enfin quelque chose comme ça... :
cle_vol cle_message
1 212
2 212
3
4 212
5 212
6
7
8 212
...
pour le moment j'ai fait
select v.cle_vol,
m.cle_message
from vol v,
message m
where v.cle_vol=m.cle_vol(+) and
v.immatriculation ='aaa' and
p.cle_message = 212 and
v.date_vol >= to_date ('06-jan-03')
mais ça me donne que les vols où la cle_message=212..
les autres ne sont pas retenus...
si vous avez une solution.. ou une idée à me donner merci...
Letissya
j'ai une petite question pour la construction d'une requete
j'ai deux tables :
VOL (cle_vol, date_vol, immatriculation_vol)
MESSAGE(cle_message, cle_vol)
et j'aimerais avoir la liste des vols à partir d'une date et savoir si un message particulier est sur le vol, enfin quelque chose comme ça... :
cle_vol cle_message
1 212
2 212
3
4 212
5 212
6
7
8 212
...
pour le moment j'ai fait
select v.cle_vol,
m.cle_message
from vol v,
message m
where v.cle_vol=m.cle_vol(+) and
v.immatriculation ='aaa' and
p.cle_message = 212 and
v.date_vol >= to_date ('06-jan-03')
mais ça me donne que les vols où la cle_message=212..
les autres ne sont pas retenus...
si vous avez une solution.. ou une idée à me donner merci...
Letissya
A voir également:
- Requete jointure externe
- Chkdsk disque dur externe - Guide
- Batterie externe clignote ne charge pas - Forum Mobile
- Appel externe c'est quoi - Forum telephonie fixe
- Jointure sql ✓ - Forum MySQL
- Requête sql pix - Forum Python
10 réponses
Bonjour,
C'est quoi comme base ? (pour savoir quel SQL)
Si tu fais "p.cle_message is not null" au lieu de " p.cle_message = 212", ça donne quoi ?
A+ Blux
C'est quoi comme base ? (pour savoir quel SQL)
Si tu fais "p.cle_message is not null" au lieu de " p.cle_message = 212", ça donne quoi ?
A+ Blux
"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Bonjour Letssya.
Dans ta clause where, tu as mis "and p.cle_message = 212"
Il est donc normal que cette requête ne te sorte que les vols pour lesquels la cle_message est 212.
En fait, si j'ai bien compris, tu voudrais en résultat la liste des vols postérieurs à une certaine date, avec à côté le message éventuel s'y rapportant.
Tu n'as pas besoin pour ça de rajouter la clause sur cle_message à mon avis.
Si je me trompe sur la bonne compréhension de ton pb, n'hésites pas à en remettre une couche.
a+
(:•Þ Pitu (Apprenti Ipl)
Dans ta clause where, tu as mis "and p.cle_message = 212"
Il est donc normal que cette requête ne te sorte que les vols pour lesquels la cle_message est 212.
En fait, si j'ai bien compris, tu voudrais en résultat la liste des vols postérieurs à une certaine date, avec à côté le message éventuel s'y rapportant.
Tu n'as pas besoin pour ça de rajouter la clause sur cle_message à mon avis.
Si je me trompe sur la bonne compréhension de ton pb, n'hésites pas à en remettre une couche.
a+
(:•Þ Pitu (Apprenti Ipl)
:o( Ouuuuiiiiiiiiiinnnnnn ... Je comprends plus rien ...
Tu veux la liste des vols en faisant une jointure sur tes 2 tables, mais tu ne veux QUE ceux qui ont le message 212, c'est ça ?
(Je ne parle pas de date, puisque tu as résolu ce pb).
Ben ... c'est pas ce que tu as obtenu avec ta requête ?
Non, bien évidemment, puisque tu pose la question. Mais là, je ne comprends pas ...
(:•Þ Pitu (Apprenti Ipl)
Tu veux la liste des vols en faisant une jointure sur tes 2 tables, mais tu ne veux QUE ceux qui ont le message 212, c'est ça ?
(Je ne parle pas de date, puisque tu as résolu ce pb).
Ben ... c'est pas ce que tu as obtenu avec ta requête ?
Non, bien évidemment, puisque tu pose la question. Mais là, je ne comprends pas ...
(:•Þ Pitu (Apprenti Ipl)
Ca veut donc dire qu'il y plusieurs messages possibles pour chaque vol, il faut bien mettre le numéro de message pour avoir le message particulier.
Je crains cependant de ne pas avoir tout compris l'énoncé du problème... peux-tu en rajouter (ou le reposer en d'autres termes) ?
A+ Blux
Je crains cependant de ne pas avoir tout compris l'énoncé du problème... peux-tu en rajouter (ou le reposer en d'autres termes) ?
A+ Blux
"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oui il peut y avoir plusieurs messages sur un vol...
dans la table message je peux avoir ça :
MESSAGE :
cle_message cle_vol
212 1
578 1
587 2
212 6
587 3
986 3
512 6
212 4
878 5
965 5
125 3
et moi ce que je voudrais obtenir en fait c'est
cle_vol cle_message
1 212
2
3
4 212
5
6 212
en fait je veux avoir tous les vols à partir d'une certaine date... et que pour chaque vol je puisse savoir si un message particulier est apparu ou non..
je ne veux pas juste les vols où ce message est apparu... je veux aussi les vols où le message n'est pas apparu même s'il y a eu des messages différents ou pas de messages du tout...
c'est plus clair ?
Letissya
dans la table message je peux avoir ça :
MESSAGE :
cle_message cle_vol
212 1
578 1
587 2
212 6
587 3
986 3
512 6
212 4
878 5
965 5
125 3
et moi ce que je voudrais obtenir en fait c'est
cle_vol cle_message
1 212
2
3
4 212
5
6 212
en fait je veux avoir tous les vols à partir d'une certaine date... et que pour chaque vol je puisse savoir si un message particulier est apparu ou non..
je ne veux pas juste les vols où ce message est apparu... je veux aussi les vols où le message n'est pas apparu même s'il y a eu des messages différents ou pas de messages du tout...
c'est plus clair ?
Letissya
v.cle_vol=m.cle_vol(+) serait à mettre dans la jointure et non dans le where, c'est-à-dire
SELECT ...
ON v.cle_vol=m.cle_vol(+)
WHERE
Ca irait pas mieux ?
A+ Blux
SELECT ...
ON v.cle_vol=m.cle_vol(+)
WHERE
Ca irait pas mieux ?
A+ Blux
"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
ben non car le (+) c'est la jointure...
sinon il faut que j'utilise OUTER JOIN et pas le (+)... mais ma version d'ORACLE ne supporte pas la syntaxe avec JOIN..
donc, je ne pense pas que ça vienne de là.. je crois plutot que je doit faire deux requetes ... pour arriver à mes fins...
Letissya
sinon il faut que j'utilise OUTER JOIN et pas le (+)... mais ma version d'ORACLE ne supporte pas la syntaxe avec JOIN..
donc, je ne pense pas que ça vienne de là.. je crois plutot que je doit faire deux requetes ... pour arriver à mes fins...
Letissya