Tabellen vergleichen

medicus41

Mitglied
HI,

wie gehe ich am Besten bei folgendem vor: Ich habe 2 Tabellen mit
identischen Spalten. Nun möchte ich die Einträge in Tabelle2 löschen,
welche nicht in Tabelle1 vorhanden sind.

Bsp:
Tabelle1
name minuten
Hans 80
Fritz 200
Tom 30

Tabelle2
name minuten
Hans 80
Fritz 200
Tom 30
Max 100

Nun ist in Tabelle2 "Max" enthalten, aber nicht in Tabelle1. Daher
soll dieser Datensatz gelöscht werden.
 
Tach !

Ich würde ja mal einfach behaupten, daß du das LEFT JOIN realisieren könntest:
select t2.name, t2.min from tabelle2 t2 left join tabelle1 t1 using (name) where t1.name is null
So kannst du mal eben den Datensatz selektieren ... !
Aber wie man das dann löscht ?? :) Würde mich auch interessieren.
Du brauchst dann ja nur ne neue Anweisung schreiben, bei welcher du in Abhängigkeit des Ergebnisses deiner ersten Anfrage du die Datensätze löscht !
Umständlich aber möglich mit MySQL !
Sonst sollte doch eigentlich eine verschachtelte Anweisung gehen.
Oder ich hab mal wieder in DBS nicht aufgepaßt ! :rolleyes:

Hoffe, es hilft.
...Martin
 
Hi,

mit deiner Abfrage hab ich die Datensätze rausgefiltert und anschließend durch eine neue Abfrage gelöscht.


PHP:
$check ="SELECT schedule_flights_temp.flightnr from schedule_flights_temp LEFT JOIN
         schedule_flights ON schedule_flights_temp.flightnr =schedule_flights.flightnr 
		 where schedule_flights.flightnr is NULL";
		 $go = mysql_query($check, $conn);
         while($r = mysql_fetch_array($go,MYSQL_ASSOC)){
         mysql_query("DELETE from schedule_flights_temp where flightnr = '".$r['flightnr']."'");
		 }
 

Neue Beiträge

Zurück