plusieur outer join, c'est possible???? - SQL/NoSQL - Programmation
Marsh Posté le 10-07-2003 à 10:24:48
bin tu les rajoutes a la fin ... mais la je sens que ça t'aide pas
Code :
|
Marsh Posté le 10-07-2003 à 10:30:16
ca marche pas ca :
"SELECT agent.num_agent,nom_agent, prenom_agent, telephone,num_tel from agent left outer JOIN portable ON (agent.num_agent = portable.num_agent) left outer JOIN dp ON (agent.num_agent = dp.num_agent)"
Marsh Posté le 10-07-2003 à 10:54:54
C'est encore moi
En fait ce que je veux c'est joindre la table1 ,la table2 et la table3 en conservant toutes les lignes de la table 1.
Ces 3 tables sont reliées par le meme champ "num_agent"
voila si qqun peut m'aider je le remercie d'avance
Marsh Posté le 10-07-2003 à 11:17:38
c'est bon j'ai trouveé comment ca marche.
Il faut simplement utilisé des parenthèsesun peu partout
Marsh Posté le 10-07-2003 à 17:21:42
Tu peux faire autant le left outer join que tu veux, mais pas en cascade.
Exemple :
select cases.caseid, cases.sigcli, nvl(contact.clinam, ' ') clinam, detcli.nomcli clinom, nvl(cases.castit, ' ') castit, nvl(to_char(to_date(cases.callba, 'YYYYMMDD'), 'DD/MM/YYYY'), ' ') as CALLBA, cases.priori, cases.status, cases.uticre, to_char(to_date(cases.datcre, 'YYYYMMDD'), 'DD/MM/YYYY') || ' ' || cases.heucre dte, detcli.sigrep, to_date(nvl(clos.datmod, to_char(sysdate, 'YYYYMMDD')), 'YYYYMMDD') - to_date(cases.datcre, 'YYYYMMDD') age, nvl(nvl(proinf.fldlbl, '') || nvl(orders.fldlbl, '') || nvl(declin.fldlbl, ''), ' ') reason, decode(cases.proinf, null, ' ', 'Inboud call') || decode(cases.orders, null, ' ', 'Outbound call pos') || decode(cases.declin, null, ' ', 'Outbound call neg') as calltype |
Ca ça marche.
Par contre, ça ça ne marchera pas :
select t3.toto |
Parceque dans ce cas, du fait un left join sur une table qui participe déjà à gauche d'un autre left join. On ne peut donc pas faire de left join de T3 par rapport à T1 parceque T1 est déjà à gauche d'une jointure avec T2.
Marsh Posté le 10-07-2003 à 10:19:50
Salut Salut
voila ma requete :
"SELECT agent.num_agent,nom_agent, prenom_agent, telephone,num_tel from agent left outer JOIN portable ON agent.num_agent = portable.num_agent"
ca marche mais si je veux ajouter d'autre outer join je fais comment?