Zapytanie do tabel o takiej samej strukturze

0

Mam w MySQL tabele "Personal" oraz "Archiwum" o identycznej strukturze np. Pesel, Nazwisko.

Jak wykonać zapytanie Select, aby jako wynik uzyskać wiersze z obu tabel w takiej samej strukturze kolumn ?

Przykład :

Tabela Personal
121 , Aaa
122 , Baa

Tabela Archiwum
123, Caa
124, Daa

Chciałbym jako wynik uzyskać :

121 , Aaa
122 , Baa
123 , Caa
124 , Daa

W przypadku, gdy osoba wystąpi wielokrotnie w tabelach (w tabeli Personal numer Pesel jest unikalny, ale w tabeli Archiwum może wystąpić wielokrotnie), chciałbym uzyskać tylko jeden wynik dla danej osoby z priorytetem wyboru z tabeli Personal.

0

SELECT column_name FROM table_name1
UNION
SELECT column_name FROM table_name2

0
select * from a union select * from b;
0

Dziękuję, działa prawie poprawnie.

SELECT Pesel, Nazwisko
FROM Personal
WHERE (Pesel LIKE CONCAT(@Pesel, '%'))
UNION
SELECT  Pesel, Nazwisko
FROM Archiwum
WHERE (Pesel LIKE CONCAT(@Pesel, '%'))
ORDER BY Pesel

W jaki sposób zmodyfikować powyższe zapytanie, aby wyeliminować wiersze z powtarzającym się numerem Pesel ( priorytet ma wiersz z tabeli Personal - o ile wystąpi ) ?

0
SELECT DISTINCT Pesel, Nazwisko FROM
(
SELECT Pesel, Nazwisko
FROM Personal
WHERE (Pesel LIKE CONCAT(@Pesel, '%'))
UNION
SELECT  Pesel, Nazwisko
FROM Archiwum
WHERE (Pesel LIKE CONCAT(@Pesel, '%'))
) as t
ORDER BY Pesel
0

union distinct zamiast union, bo select z selecta to trochę be w tym kontekście

0

Niestety, nic się nie zmieniło - nadal zapytanie zwraca wiele wierszy o takim samym numerze pesel z obu tabel.

0

ale jeśli pesel jest taki sam a inne jest nazwisko to qupa

0
Misiekd napisał(a)

ale jeśli pesel jest taki sam a inne jest nazwisko to qupa

Niestety, pomimo wspólnego numeru pesel, poszczególne pola mogą się różnić w wielu kolumnach.

0

zatem o co Ci chodzi ?

0

no to przy tabelce archiwalnej musisz jawnie wybrać tylko te rekordy, których nie ma w tabeli podstawowej

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