SQL - override UNION ALL

0

Witam,
walczę z wydawałoby się całkiem prostą rzeczą, a mianowicie nadpisywania wyników podczas łączenia dwóch tabel. Wykonałem próbne tabelę:

TABELA 1:

id nazwa wartosc
1 adam ewa
1 ala kot

TABELA 2:

id nazwa wartosc
5 sierotka marysia
5 adam nie ewa

Działanie jest takie: chcę pobrać i połączyć obie tabele, ale w taki sposób by nadpisywał dane poprzez ignorowanie pola wartosc

Czyli mam (specjalnie nie użyłem gwiazdki):

SELECT nazwa, wartosc FROM tabela1 WHERE id = 1 
UNION
SELECT nazwa, wartosc FROM tabela2 WHERE id = 5;

I w tym momencie on mi wyświetli wszystkie dane:

  • adam ewa
  • ala kot
  • sierotka marysia
  • adam nie ewa

Zmieniając na:

SELECT nazwa FROM tabela1 WHERE id = 1 
UNION
SELECT nazwa FROM tabela2 WHERE id = 5;

Wyświetli mi:

  • ala
  • sierotka
  • adam

A ja chciałbym otrzymać taki wynik:

  • ala kot
  • sierotka marysia
  • adam nie ewa

Czyli potrzebuję by UNION działał tylko na pole nazwa, a na pole wartosc juz nie.

Jak to obejść (pamiętając o tym, że w swoim kodzie mam jeszcze sortowanie po kolejności)?

1

W sumie odpowiedź była prosta:

SELECT nazwa, wartosc FROM tabela1 WHERE id = 1 AND 
nazwa NOT IN( SELECT nazwa FROM tabela2 WHERE id = 5 ) 
UNION
SELECT nazwa, wartosc FROM tabela2 WHERE id = 5;

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