[MySQL] Select z wielu tabel

0

Jest sobie dziwna baza która ma kilka tabel z osobami (pesel, nazwisko, imie.. itd.). Baza jest dziwnie zaplanowana ponieważ jedna osoba może wystąpić w kilku tabelach a nawet kilka razy w jednej tabeli. Kształtu bazy nie mogę zmienić.

Piszę w delphi nowy program do dodawania osób do tej bazy i chce zrobić tak by przy wprowadzaniu peselu było sprawdzane czy on już jest w bazie i by reszta danych osoby była wstawiana automatycznie.

Potrzebuję do tego zapytanie które sprawdzi mi we wszystkich tabelach (są cztery) czy już jest osoba o takim peselu i gdy znajdzie kilka to żeby zwróciło tylko jedną, którą sobie poźniej w programie wstawie w odpowiednie pola.

Jak powinno wyglądać takie zapytanie?

0

SELECT 'tabela1' As tabela, id FROM tabela1 WHERE pesel = @pesel
UNION
SELECT 'tabela2', id FROM tabela2 WHERE pesel = @pesel
UNION
SELECT 'tabela3', id FROM tabela3 WHERE pesel = @pesel
UNION
SELECT 'tabela4', id FROM tabela4 WHERE pesel = @pesel

0

Gdyby ta baza była znormalizowana i tabele powiązane ze sobą to byłoby to całkiem proste. W tej sytuacji jednak obawiam się, że pozostaje Ci tylko odpytywanie każdej tabeli po kolei i przerwanie jeśli zwróci rekord. Mógłbyś co prawda powiązać tabele numerem PESEL, ale... nie wiedząc w której z tabel może być osoba, nie wiesz z której pobrać dane osobowe.

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