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)
delete from -> mehere tabellen verknüpfen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
delete from -> mehere tabellen verknüpfen


 
cent
14-01-2002, 15:58 
 
hallo,
ich habe 4 tabellen und möchte nun die einträge löschen in denen in zwei tabellen die bedingung übereinstimmt also z.B.
$sql = "delete from tabelle1 as tab1 JOIN tabelle2 as tab2 JOIN ";
$sql .= "tabelle3 as tab3 JOIN tabelle3 as tab4 WHERE tab1.spalte1 = '' AND tab4.spalte3 = ''";
mysql_query($sql,$db);

aber leider klappt das nicht. kann man so was nicht machen ?

 
JoelH
14-01-2002, 16:06 
 
das kann garnicht gehen weil es nicht logisch ist. Du musst schon irgendwelche Beziehungen eingeben zwischen allen Tabellen sonst weiss SQL nicht was es machen soll.
Zumindestens sehe ich das so.

 
cent
14-01-2002, 16:15 
 
mhm. das hatte ich schon versucht. wenn ich noch

.. tab1.id = tab2.id AND tab3.id = tab4.id AND tab2.id = tab3.id ..
dran hänge passiert trotzdem nichts.

 
Sky
14-01-2002, 16:22 
 
Also so nicht... Erstmal machst du die Performance (und auch die Syntax) des Joins zunichte, indem du die WHERE-Bedingung verwendest, wo eine ON oder USING()-Klausel angebracht wäre... Zweitens unterstützt DELETE keine JOINs. Mach es entweder nur mit WHERE oder mit einem SELECT des Primary Keys mit dem entspr. JOIN und lösche dann die entsprechenden Daten mit DELETE.

 
cent
14-01-2002, 16:24 
 
mhm. eigentlich wollte ich es ja genau nicht mit select machen ... wie geht es denn mit einem rutsch über delete?
danke :)

 
Sky
14-01-2002, 16:37 
 
$sql = "DELETE tabelle1 FROM tabelle1 AS tab1, tabelle2 AS tab2, ";
$sql .= "tabelle3 AS tab3, tabelle3 AS tab4 WHERE tab1.spalte1 = '' AND tab4.spalte3 = ''";

...sollte seinen Zweck erfüllen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:44 Uhr.