perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 22
Click for quality!




11.02.2012 / 08:33

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Rund um das Thema Datenbank zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragLöschen in MySQL - DB (Subselect?!)
Seitenanfang
Hallo,

MySQL unterstützt ja keine Subselcts. Ich habe bare ein Problem.

Aufgrund eines hängengeblibenen MySQL-Tasks habe ich haufenweise Fehlerhafte Einträg in meiner Datenbank.

Ich will das mal so erklären:

Ich habe Bestellungen (Tabelle: best) mit einer Bestellnummer. In einer Tabelle Bestellpositionen (bestpos) sind die zugörigen Bestellpositionen hinterlegt.

Jetzt habe ich durch den Fehler unzählige (über 250000) Einträge in der Besteelltabelle zuviel, zu denen keine Positionen existieren.

Ich wollte jetzt folgendes Ausführen:

DELETE FROM best WHERE best_id NOT IN
(SELECT DISTINCT best_id FROM bestpos);

Da MySQL keinen Subselect zulässt stehe ich nun vor einem Rätsel. Einen Select über Tempory tables kann ich machen, aber wie bekomme ich einen solchen DELETE hin, vor allem, weil ich ein NOT IN benötige.

Ich stehe da irgend wie auf dem Schlauch. Wenn einer eine Idee hat, bitte helfen.

Danke und Gruß

Garcon

Datum: 16.03.2006-08:59

Beitragre: Löschen in MySQL - DB (Subselect?!)
Seitenanfang
Öhm... seit Version 4.1 kann MySQL auch Subselects -> http://dev.mysql.com/doc/refman/4.1/en/subqueries.html

Datum: 16.03.2006-11:02

Beitragre: Löschen in MySQL - DB (Subselect?!)
Seitenanfang
Ohh,

Ich fahre hier noch MySQL 3.23.38. Kann leider nicht upgraden, weil auch Kritische Anwendungen auf der DB laufen.

Hab aber einen Workarround überlegt:

Mache 2 Abfragen.

Selectiere erst die Positionstabelle, schreibe dann die IDs in ein Textfeld, und Delete dann mit NOT IN Textfeld in einem weiteren SQL-Statement.

Falls jemand eine bessere Idee hat, bitte trotzdem noch posten.

Danke

Datum: 16.03.2006-15:19

-






-
-