> 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 ...

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

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:











Top