OVH Cloud OVH Cloud

Pb SQL

3 réponses
Avatar
Vuillermet Jacques
Soit Table1 :
ID LIB1
1 A
2 B

Soit Table2 :
ID LIB2
1 X
3 Y

Quelle requête pour obtenir :
ID LIB1 LIB2
1 A X
2 B
3 Y

?

Je pensais (en pseudo-SQL) :
SELECT DISTINCT
FROM
(
(T1 left outer join T2)
UNION
(T2 left outer join T1)
)
?

Merci !

Jacques.

3 réponses

Avatar
Sylvain Lafontaine
Utilisez un FULL OUTER JOIN.

L'union est également bonne mais vous devez rajouter les colonnes vides
correspondantes à chaque Select.

S. L.

"Vuillermet Jacques" wrote in message
news:

Soit Table1 :
ID LIB1
1 A
2 B

Soit Table2 :
ID LIB2
1 X
3 Y

Quelle requête pour obtenir :
ID LIB1 LIB2
1 A X
2 B
3 Y

?

Je pensais (en pseudo-SQL) :
SELECT DISTINCT
FROM
(
(T1 left outer join T2)
UNION
(T2 left outer join T1)
)
?

Merci !

Jacques.




Avatar
Sylvain Lafontaine
Aussi, si vous n'écrivez pas UNION ALL, la clause Distincte est déjà incluse
dans votre clause UNION par défaut.

S. L.

"Vuillermet Jacques" wrote in message
news:

Soit Table1 :
ID LIB1
1 A
2 B

Soit Table2 :
ID LIB2
1 X
3 Y

Quelle requête pour obtenir :
ID LIB1 LIB2
1 A X
2 B
3 Y

?

Je pensais (en pseudo-SQL) :
SELECT DISTINCT
FROM
(
(T1 left outer join T2)
UNION
(T2 left outer join T1)
)
?

Merci !

Jacques.




Avatar
Vuillermet Jacques
Merci Sylvain !


SELECT COALESCE (t1.Id, t2.Id) AS Expr1, t1.Lib1, t2.Lib2
FROM Table1 t1 FULL OUTER JOIN
Table2 t2 ON t1.Id = t2.Id

Jacques.


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news: e5$
Utilisez un FULL OUTER JOIN.

L'union est également bonne mais vous devez rajouter les colonnes vides
correspondantes à chaque Select.

S. L.

"Vuillermet Jacques" wrote in message
news:
>
> Soit Table1 :
> ID LIB1
> 1 A
> 2 B
>
> Soit Table2 :
> ID LIB2
> 1 X
> 3 Y
>
> Quelle requête pour obtenir :
> ID LIB1 LIB2
> 1 A X
> 2 B
> 3 Y
>
> ?
>
> Je pensais (en pseudo-SQL) :
> SELECT DISTINCT
> FROM
> (
> (T1 left outer join T2)
> UNION
> (T2 left outer join T1)
> )
> ?
>
> Merci !
>
> Jacques.
>
>