maik87
Goto Top

Anfügeabfrage: Daten nur anfügen, wenn nicht bereits vorhanden

Hallo,
ganz vereinfacht gesaagt, habe ich folgendes Problem:

Ich habe zwei Ursprungstabellen (verknüpft, keine schreibrechte) und lasse diese beiden in eine gemeinsamme Tabelle mittels Anfügeabfragen laufen. Da sich diese Tabellen immer erweitern und ich nicht immer die Zieltabelle löschen kann, muss ich mir was überlegen, damit die Datensätze nicht doppelt reinlaufen.

Die Auto-IDs können sich überschneiden. Aus diesem Grund lege ich eine neue an. Die alte wird aber (weil ich dachte, das hilft genau bei diesem Problem) in eine Spalte reingeschrieben. Wenn ich nun weitere Spalten hinzuziehen würde, kann ich den Datensatz eindeutig wieder auf die Ursprungstabelle zurückführen. Ich kann (wenn ich wüsste wie) die Tabellen vergleichen und sagen, der Datensatz ist schon erfasst bzw der ist noch nicht.

Bloß wie kann mein Kriterium da aussehen?? Bei den Abfragen kann man ja sagen, nehme alle Datensätze aus Tabelle 1 und nur die aus 2, die auch in 1 vorhanden sind. Aber genau dieses brauche ich als gegenteil. Ich will also alle aus 1, die ich nicht in 2 finden kann!!

Content-Key: 49809

Url: https://administrator.de/contentid/49809

Printed on: April 19, 2024 at 05:04 o'clock

Member: volkerw
volkerw Jan 25, 2007 at 12:15:30 (UTC)
Goto Top
Hallo,

alle aus 1, die ich nicht in 2 finden kann, dürfte in Sql etwa so aussehen:

SELECT * FROM tabelle1 t1 WHERE NOT EXISTS (SELECT 1 FROM tabelle2 t2 WHERE t1.id = t2.id);


Gruß Volker
Member: Maik87
Maik87 Jan 25, 2007 at 12:26:53 (UTC)
Goto Top
Hey danke,
mir ist aber vor 2 Minuten eingefallen, dass ich ja auch die einzelnen Felder, die ich zum identifizieren verwenden wollte, zusammen in ein Feld laufen lasse und somit Schlüsselverletzungen erzwinge, deren Meldung ich vorher brav im Code abgeschaltet habe face-wink

Aber vielen Dank für deine Mühe. Merke ich mir fürs nächste mal.