Discussione:
Come fare una LEFT JOIN senza scrivere LEFT JOIN
(troppo vecchio per rispondere)
Cricca
2011-10-07 08:12:27 UTC
Permalink
Salve!
Su altri motori SQL (vedi Oracle o SQL server) sono disponibili dei
comandi per eseguire delle LEFT JOIN senza però scrivere nel comando
SQL "LEFT JOIN".
Si tratta di comandi con una sintassi di questo tipo

SELECT *
FROM f1, f2
WHERE f1.cod=f2.cod(+)

Qualcuno sa dirmi se esiste la possibilità di fare una cosa simile con
il DB2 di AS400?

Grazie
Ciao
Cricca
Cano Vaccio
2011-10-07 09:05:22 UTC
Permalink
Post by Cricca
Salve!
Su altri motori SQL (vedi Oracle o SQL server) sono disponibili dei
comandi per eseguire delle LEFT JOIN senza però scrivere nel comando
SQL "LEFT JOIN".
Si tratta di comandi con una sintassi di questo tipo
SELECT *
FROM f1, f2
WHERE f1.cod=f2.cod(+)
Qualcuno sa dirmi se esiste la possibilità di fare una cosa simile con
il DB2 di AS400?
per funzionare funziona,
ma a differenza del LEFT JOIN nel caso non ci sia
corrispondenza non estrae nulla
Cricca
2011-10-07 10:00:13 UTC
Permalink
E quindi si comporta come la INNER JOIN e non come una LEFT JOIN.
Questo, tra l'altro, è un comportamento SQL standard.
Post by Cano Vaccio
Post by Cricca
Salve!
Su altri motori SQL (vedi Oracle o SQL server) sono disponibili dei
comandi per eseguire delle LEFT JOIN senza per scrivere nel comando
SQL "LEFT JOIN".
Si tratta di comandi con una sintassi di questo tipo
SELECT *
FROM f1, f2
WHERE f1.cod=f2.cod(+)
Qualcuno sa dirmi se esiste la possibilit di fare una cosa simile con
il DB2 di AS400?
per funzionare funziona,
ma a differenza del LEFT JOIN nel caso non ci sia
corrispondenza non estrae nulla
Danilo Cussini
2011-10-07 10:13:56 UTC
Permalink
Post by Cricca
Su altri motori SQL (vedi Oracle o SQL server) sono disponibili dei
comandi per eseguire delle LEFT JOIN senza però scrivere nel comando
SQL "LEFT JOIN".
Si tratta di comandi con una sintassi di questo tipo
SELECT *
FROM f1, f2
WHERE f1.cod=f2.cod(+)
Qualcuno sa dirmi se esiste la possibilità di fare una cosa simile con
il DB2 di AS400?
Sulla 6.1 no.
stefano[dot]tassi[at]dedanext[dot]it
2011-10-08 08:41:39 UTC
Permalink
Post by Cricca
Salve!
Su altri motori SQL (vedi Oracle o SQL server) sono disponibili dei
comandi per eseguire delle LEFT JOIN senza però scrivere nel comando
SQL "LEFT JOIN".
Si tratta di comandi con una sintassi di questo tipo
SELECT *
FROM f1, f2
WHERE f1.cod=f2.cod(+)
Qualcuno sa dirmi se esiste la possibilità di fare una cosa simile con
il DB2 di AS400?
Grazie
Ciao
Cricca
la sintassi (+) è un'estensione di Oracle, direi non faccia parte dello
strandard sql.
il formato ansi richiede l'esplicita specifica della clausola
LEFT OUTER JOIN (che, IMO è meglio, risulta piu' leggibile).
su i5 questa sintassi non è allo stato attuale (7.1) supportata.

HTH
--
--
http://www.linkedin.com/in/stefanotassi

Programming today is a race between software engineers striving to
build bigger and better idiotproof programs, and the Universe trying
to produce bigger and better idiots. So far the Universe is winning.
(Rick Cook)
Continua a leggere su narkive:
Loading...