Zapytanie do tabel o takiej samej strukturze

Odpowiedz Nowy wątek
2009-03-16 10:10
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.


Pozdrawiam, Ryszard

Pozostało 580 znaków

2009-03-16 10:51
0

SELECT column_name FROM table_name1
UNION
SELECT column_name FROM table_name2

Pozostało 580 znaków

2009-03-16 10:52
0
select * from a union select * from b;

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2009-03-16 14:05
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 ) ?


Pozdrawiam, Ryszard

Pozostało 580 znaków

2009-03-16 15:12
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

Pozostało 580 znaków

2009-03-16 15:43
0

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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2009-03-16 17:23
0

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


Pozdrawiam, Ryszard

Pozostało 580 znaków

2009-03-16 19:41
0

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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2009-03-16 21:11
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.


Pozdrawiam, Ryszard

Pozostało 580 znaków

2009-03-16 21:42
gosc
0

zatem o co Ci chodzi ?

Pozostało 580 znaków

2009-03-16 22:33
0

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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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