![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam dwie bazy danych. Dane w tabelach powtarzają się jednak nie mają unikalnego ID po którym można kluczem porównywać pojedyncze rekordy. Baza 1 jest wzorcem a Baza 2 jest co 15 min aktualizowana. Muszę porównać bazę 2 do bazy jeden i zobaczyć jakie zmiany zostały poczynione. Przykład: ID usera nazwa_umie poziom_umie user 1 11 cos1 1 user 1 11 cos2 1 user 1 11 cos3 0 user 2 22 cos1 2 user 2 22 cos2 1 user 2 22 cos3 0 user 3 33 cos2 0 n n n n Baza 2 wygląda bardzo podobnie - zmienia się może rekord dla user'aX. Robiąc: Select A.id_usera, A.nazwa_umie, A.poziom_umie, B.id_usera, B.nazwa_umie, B.poziom_umie from baza1 A, baza2 B where A.id_usera=B.id_usera and A.poziom_umie = B.poziom_umie and A.poziom_umie = B.poziom_umie and A.id_usera = '11' Na podst tabeli powyżej zwraca mi wynik w postaci: 1)user1_11 - cos1 - 1 2)user1_11 - cos2 - 1 3)user1_11 - cos3 - 0 ale gdy Baza 2 dostanie aktualizację, że user1 przykład: ID usera nazwa_umie poziom_umie user 1 11 cos1 1 user 1 11 cos2 1 user 2 22 cos1 2 user 2 22 cos2 1 user 2 22 cos3 0 user 3 33 cos2 0 n n n n i porównuję to z baza1 (czyli mój wzorzec) to dostaję wynik: 1)user1_11 - cos1 - 1 2)user1_11 - cos2 - 1 Moje pytanie - jak wyświetlić to dodatkowe pole z bazy1 (czyli mojego wzorca) dla user1 gdy jest we wzorcu bazy1 a nie ma już go w bazie2 - czyli coś takiego: Baza1: Baza2: 1)user1_11 - cos1 - 1 1)user1_11 - cos1 - 1 2)user1_11 - cos2 - 1 2)user1_11 - cos2 - 1 3)user1_11 - cos3 - 0 3)puste pole i czy w takiej formie jest to wykonalne? Mam nadzieję, że jest zrozumiałe to co napisałem. Moja wiedza na temat SQL nie jest duża więc proszę o zrozumienie. Z góry dziękuję za wszelką pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 00:00 |