Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Query geht mit Select, aber nicht mit Delete [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Query geht mit Select, aber nicht mit Delete


 
Seikilos
06-10-2006, 14:01 
 
Ich hab folgends Query
'DELETE FROM `bdaten` bd
LEFT JOIN `benutzer` b
ON bd.kundennummer=b.kundennummer
WHERE bd.kundennummer=b.kundennummer IS NULL'


Bei dem bekomme ich die folgende Fehlermeldung:
Function String : Query String invalid: DELETE FROM `bdaten` bd LEFT JOIN `benutzer` b ON bd.kundennummer=b.kundennummer WHERE (bd.kundennummer=b.kundennummer) IS NULL
MySQL error number : 1064
MySQL error description : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN `benutzer` b ON bd.kundennummer=b.kundennummer WHERE (bd.kundennummer=' at line 1

Schreib ich aber das da oben mit Select, also
'SELECT * FROM `bdaten` bd
LEFT JOIN `benutzer` b
ON bd.kundennummer=b.kundennummer
WHERE bd.kundennummer=b.kundennummer IS NULL'

So schluckt das mysql ohne Probleme, woran liegt dass? Das Query mit Delete ist genau das, was ich suche, aber es geht nicht :(

 
wahsaga
06-10-2006, 14:20 
 
Wie kommst du denn eigentlich auf den Gedanken, dass man DELETE und JOIN kombinieren könnte ...?

 
Seikilos
06-10-2006, 14:21 
 
Keine Ahnung, weil es extrem sinnvoll ist, denke ich.
Ich ging davon aus, das Delelte == Select ist, also die gleichen queries gehen

Edit: http://ad.informatik.uni-freiburg.de/bibliothek/tutorials/DSP/html/node8.html#SECTION03280000000000000000
Um vor dem Löschen zu testen, ob auch wirklich nur die richtigen Daten gelöscht werden, kann man erst ein SELECT * statt DELETE machen. Wenn nur Daten angezeigt werden, die gelöscht werden sollen, ersetzt man das SELECT * durch DELETE.

Noch ein Edit:

http://dev.mysql.com/doc/refman/4.1/en/delete.html
da steht doch Joins möglich

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:51 Uhr.