DELETE Problem mit zwei Tabellen
Andreas Kretschmer
andreas.kretschmer at schollglas.com
Do Jun 5 11:53:12 CEST 2008
am Thu, dem 05.06.2008, um 11:22:52 +0200 mailte Tobias Mueller-Wrana folgendes:
> Hallo liebe Liste,
>
> Ich habe ein DELETE Problem, leider wir nicht nur zuviel sondern
> ALLES gelöscht.
>
> Folgende Syntax:
>
> delete TABELLE_1, TABELLE_2 from TABELLE_1, TABELLE_2
> where TABELLE_1.id = TABELLE_2.id and TABELLE.time <= DATE
Falsche Syntax, oder akzeptiert MySQL tatsächlich so einen Quatsch?
Da ist ja schon mal im WHERE eine bisher unbekannte Tabelle.
Aber nicht nur das ist flasch.
>
> Eigentlich möchte damit nur Objekte löschen, die älter als
> DATE sind, doch leider löscht er alles aus TABELLE_1 und TABELLE_2.
test=# select * from tab_1;
id | v
----+---
1 | 1
1 | 2
1 | 3
1 | 4
2 | 1
2 | 2
2 | 3
(7 rows)
test=*# select * from tab_2;
id
----
1
2
3
(3 rows)
test=*# delete from tab_1 where (id,v) in (select tab_1.id, tab_1.v from
tab_1 inner join tab_2 on tab_1.id=tab_2.id where tab_1.v > 3);
DELETE 1
test=*# select * from tab_1;
id | v
----+---
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
2 | 3
(6 rows)
Könnte ungefähr das sein, was Du da willst, oder?
Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net