połączenie tabel - części wspólne, jak i różne w jednym wyniku

0

Witajcie,

mam pytanie o wyświetlenie złączenia dwóch tabel, wraz z częściami nie będącymi wspólnymi. Tabela 1 ma jakieś wartości dla podannych ID, Tabela 2 przedstawia alternatywne nazwy dla ID z tabeli 1 i w wyniku chciałbym wyświetlić jednocześnie wszystkie wartości alternatywne, a jeśli nie ma to także wyświetlić oryginalną.

Tabela1
kod wartość
1 aa
2 bb
3 cc

Tabela2
kod wartość
1 xx
1 yy
1 zz
3 ww

Wynik zapytania:
1 aa xx
1 aa yy
1 aa zz
2 bb
3 cc ww

Dla części wspólnych robię to tak:

SELECT T0.kod, T0.wartość, T1.wartość FROM Tabela1 T0, Tabela2 T1 WHERE T0.kod = T1.kod

w wyniku dostaję:

1 aa xx
1 aa yy
1 aa zz
3 cc ww

Brakuje mi:

2 bb

Jak zmodyfikować mojego SQLa, żeby ta nie wspólna wartość także się wyświetlała?

0

SELECT T0.kod, T0.wartość, T1.wartość FROM Tabela1 T0 LEFT JOIN Tabela2 T1 ON T0.kod = T1.kod

0

Moim zdaniem trochę trzeba poprawić to zapytanie jeśli dobrze rozumiem:

__ Tabela 2 przedstawia alternatywne__ nazwy dla ID z tabeli 1 i w wyniku chciałbym wyświetlić jednocześnie wszystkie wartości alternatywne, a jeśli nie ma to także wyświetlić oryginalną

Czyli priorytetem jest tabela 2 a jeśli w niej nie ma danych to wartość oryginalną, czyli jak rozumiem tabela 1. W takim razie proponuje RIGHT JOIN, albo FULL JOINA

SELECT ISNULL(T2.kod, T0.kod), ISNULL(T2.wartość,T0.wartość) FROM Tabela1 T0 FULL JOIN Tabela2 T1 ON T0.kod = T1.kod

1 użytkowników online, w tym zalogowanych: 0, gości: 1