2016-06-19 5 views
0

ich muss Tabelle tbl1 und tbl2 und es gibt keine Beziehung zwischen ihnen, ich möchte verschiedene Daten aus beiden Tabellen löschen mit einer Abfrage ist das möglich oder sollte ich tun es in zwei separate Abfragephp mysql lösche Daten von zwei nicht verwandten Tabelle in einer Abfrage

ich habe versucht, die folgende Abfrage

$del =" 
DELETE 
    FROM tbl1 
    , tbl2 
WHERE tbl1.delete_time IS NOT NULL 
    AND tbl1.delete_time != '0000-00-00 00:00:00' 
    AND tbl2.delete_time IS NOT NULL 
    AND tbl2.delete_time != '0000-00-00 00:00:00' 
";     
$sql =mysql_query($del) or die(mysql_error()); 
$res = mysql_query($sql); 

, aber ich habe den folgenden Fehler: Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MariaDB Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden ‚WHERE tbl1.delete_time NOT NULL UND tbl1.delete_time IST! = '0000-0' at line 1

Dank im Voraus

Antwort

-1

betrachten sie Ihre Abfrage zu ändern, indem sie mit ; wie Trennung unter

DELETE FROM tbl1 WHERE delete_time IS NOT null AND delete_time != '0000-00-00 00:00:00'; DELETE FROM tbl2 WHERE delete_time IS NOT NULL AND delete_time != '0000-00-00 00:00:00'; 

(OR) Empfohlene Art und Weise; Wickeln Sie sowohl die DELETE Anweisung in einer gespeicherten Prozedur wie

create procedure usp_deleteData 
as 
begin 
    DELETE FROM tbl1 
    WHERE delete_time IS NOT null 
    AND delete_time != '0000-00-00 00:00:00'; 

    DELETE FROM tbl2 
    WHERE delete_time IS NOT NULL 
    AND delete_time != '0000-00-00 00:00:00'; 
end 

Auch wenn Sie keine Beziehung zwischen den Tabellen haben, aber Sie haben gemeinsame Spalte delete_time genannt und so können Sie eine Multi Table DELETE-JOIN wie

DELETE tbl1, tbl2 FROM tbl1 
INNER JOIN tbl2 
WHERE tbl2.delete_time = tbl1.delete_time 
AND tbl2.delete_time IS NOT NULL 
AND tbl1.delete_time IS NOT NULL 
AND '0000-00-00 00:00:00' NOT IN (tbl1.delete_time, tbl2.delete_time); 
+0

durchführen kann i Verwenden Sie es php, – george

+0

@george, Ja können Sie die Prozedur aufrufen, wie Sie eine Abfrage aufrufen. Siehe dazu die PHP-Dokumentation. – Rahul

Verwandte Themen