SQL - usuwanie powtarzających się rekordów

0

Witam!
Piszę aplikację w Visual Basic For Application dla Accessa w związku z czym mogę tam korzystać z zapytać SQLa. Kłopot na jaki się natknąłem polega na tym, że mam dwie różne tablice (o takiej samej strukturze) i chciałbym aby w jednej z nich zostały usunięte wszystkie wiersze, które znajdują się w drugiej. Kłopot polega na tym, że nie mam tam żadnego klucza, a więc nie ma unikatowych pól. Dodatkowym kłopotem jest to, że nazwy kolumn zawierają spację. Póki co udało mi się coś takiego wymyślić :

DELETE FROM AuditLogTemp WHERE 'AuditLogTemp.*' = 'AuditLog.*';

ale to niestety mi nie działa. Ewentualnie urządza mnie jeszcze (to chyba nawet byłoby dla mnie bardziej optymalne) usuwanie powtarzających się danych. Co prawda udało mi się znaleźć kilka skryptów, które to obsługują (np. http://bymarszal.pl/blog/2009/05/09/usuwanie-duplikatow-z-tabeli-mysql/ ), ale one korzystają z unikalnych pól.

Z góry dziękuję za wszelką pomoc.

0
  1. załóż pole ID
  2. za kolumny zawierające PLiterki i spacje w nazwach powinni ręce ucinać przy samej dupie.... Ale możesz dać nazwę w [głupie pole ze spacjami w środku]
0

Zakładanie pola ID w zasadzie nic mi nie da, bo aplikacja polega na tym, że dostaje co jakiś czas nowe, aktualne dane, w związku z czym muszę usunąć te które mam już zapisane (te w których wszystkie pola się pokrywają jednocześnie - bo wiele pól się powtarza) lub dopisać nowe dane.
Odnośnie spacji w nazwach, to nie mój pomysł, dostaję takie, a nie inne dane i muszę na nich działać. Jakiś pomysł jak to obejść SQLem, tylko nie jestem pewny czy wszystkie funkcje są obsługiwane przez VBA

0
delete from AuditLogTmp where exists(select 1 from AuditLog al where al.pole1 = pole1, al.pole2 = pole2)

-- itd wymieniasz wszystkie pola

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