> Forums > MySQL

D

DELETE mit 2 Tabellen

Erstellt
Nov. '06
letzte Antwort Antwort
1
Aufrufe
6.1T
8
„Gefällt mir“
Abos
1
Sa., 04. November, 2006 um 17:45
#1

habe eine einfach Frage:
Ich habe 2 Tabellen, die eine heißt 't1', die andere 't2'.
Beide haben jeweils eine INT-spalte namens 'id'.

Nun möchte ich aus 't1' alle Zeilen löschen, deren id-Wert in 't2' in keiner Zeile zu finden ist. Und das möglichst in _einem_ Query.

Habe schon folgendes probiert:
delete from t1 using t1, t2 where t1.id != t2.id;

Aber bei diesem Query werden aus t1 _alle_ Zeilen gelöscht. Andere Vorschläge?
Vielen Dank!

Edit:

Habe auch schon irgendwo gelesen, dass sich DELETE- und SELECT-Querys nicht kombinieren lassen.

Andererseits müsste ich sehr aufwändige Querys ausführen lassen, nämlich:

1) select id from t1;

2) über foreach() in php _jede_ zeile in t1 abfragen:

3) select 1 from t2 where id = ;

4) wenn der Query aus 3) kein Ergebnis liefert, löschen:

5) delete from t1 where id = ;

=> Das wäre doch viel zu aufwändig und nimmt ohne Ende Zeit in Anspruch. Geht's nicht einfacher ?



C&M distanziert sich konkret und ausdrücklich vom Inhalt dieses Postings.
Der Ersteller des Postings haftet für seine Äußerungen.
Inhalte, die nicht den Forumsregeln entsprechen sind bitte vom Leser zu melden ...
 
0
 
0

Sa., 04. November, 2006 um 18:00
#2

MYSQL >4.1

DELETE * FROM t1 WHERE id NOT IN (SELECT ID FROM t2)

Versuche das mal
 
0
 
0

Der Mensch ist ein naiver Tourist mit einem abgelaufenem Visum für den Planeten Erde ..

> Forums > MySQL

Du hast bereits für diesen Post abgestimmt...

;-)



Logo https://t.ress.at/GBkry/


Ähnliche Themen: