2 Tabellen vergleichen

Dr_Google

Mitglied
Hallo at all,

ich habe folgendes problem.

Ich habe eine Tabelle "Mitarbeiter" mit fogenden Felder:
->Bezeichnung z.B G080
->Anrede Herr
-> Titel
-> Vorname Alexandra
->Nachname Müller
->Vertragsende 22.01.2006
-> Vertragsanfang 22.01.2005
-> Personalnummer 845454

Ich habe die gleiche Tabelle "Mitarbeitertest" mit den gleichen Felder ein zweites mal in der Datenbank aber diesmal mit aktuelleren Daten.

Nun meine Frage:

Wenn in der Tabelle "Mitarbeitertest" Mitarbeiter ausgeschieden sind so müssen diese datensätze in meinem Produktivtabelle "Mitarbeiter" auch entfernt werden.

Gibt es da ein sql befehl mit dem das nachprüfen kann?


Code:
DELETE t2.* FROM mitarbeiter 
t1 RIGHT JOIN mitarbeitertest t2 ON t1.check2 = t2.check2
 WHERE t1.check2 IS NULL
Das funktioniert leider nicht
 
Wenn es SQL Server ist (kann es sein, dass Du den 3ten Post zu diesen Daten hast und immer noch nicht angibst, welches DBMS Du benutzt?) dann ist die Syntax so:
DELETE mitarbeiter
FROM mitarbeiter t1
RIGHT JOIN mitarbeitertest t2 ON t1.check2 = t2.check2
WHERE t1.check2 IS NULL
 
mysql Datenbank 1.4.13 mit PHP

MySQL meldet: Dokumentation
#1109 - Unknown table 'mitarbeiter' in MULTI DELETE
----------------------------------------------------------------------------------------

ich habe die richtige select abfrage um die datensätze aufzulisten die gelöscht werden sollen nämlich diese hier
Code:
SELECT * FROM mitarbeiter t1 WHERE NOT EXISTS ( SELECT * FROM mitarbeitertest t2 WHERE t2.check2 = t1.check2 )

Wenn ich aber jetzt das SELECT gegen ein DELETE austausche kommt diese Meldung
Code:
DELETE * FROM mitarbeiter t1 WHERE NOT EXISTS ( SELECT * FROM mitarbeitertest t2 WHERE t2.check2 = t1.check2 )

MySQL meldet:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM mitarbeiter t1 WHERE NOT EXISTS ( SELECT * FROM mitarbeitertest t2 WHERE ' at line 1

Ich habe keine ahnung woran das liegen könnte

Gruss
Google
 
Zuletzt bearbeitet:
niggo hat gesagt.:
Hi, lass mal das * weg ;)
...dann kommt dieser Fehler. Leider


MySQL meldet:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS ( SELECT FROM mitarbeitertest t2 WHERE t2.check2 = t1.check2 )' at line 1

Gruss
google
 
:-S

In dem Subselect solltest du das Sternchen schon drin lassen, oder wenigstens eine Feld angeben. ;)
Nicht so übereifrig ;)
 
Zurück