2017-03-10 3 views
0

Ich habe eine Fehlermeldung, dass "Sie haben einen Fehler in Ihrer SQL-Syntax, überprüfen Sie das Handbuch, das Ihrem entspricht MySQL-Server-Version für die richtige Syntax in der Nähe zu verwenden 'FROM TABLE_A INNER JOIN Table_B ON table_A.name = table_B.name' at line 1 "SQL-Syntaxfehler: 'FROM Tabelle_A INNER JOIN Tabelle_B ON Tabelle_A.Name = Tabelle_B.Name' in Zeile 1

die sQL-Abfrage ist:

$sql="UPDATE table_A SET table_A.quantity = table_A.quantity - 
table_B.quantity FROM table_A INNER JOIN table_B ON table_A.name = table_B.name 
WHERE table_B.status = 'APPROVED'"; 

Bitte helfen Sie mir aus dieser Fehler. Vielen Dank.

+0

INNER sollte innere sein Mitglied werden? – manderson

+0

Sie haben 'INNER' anstelle von' INNER JOIN' geschrieben –

+0

uppsss Entschuldigung. Es ist ein Tippfehler. Ich benutze INNER JOIN –

Antwort

0

"INNER" sollte "INNER JOIN"

sein Ich glaube, Sie auch

$sql="UPDATE table_A SET quantity = table_A.quantity - 
    table_B.quantity FROM table_A INNER JOIN table_B ON table_A.name = table_B.name 
    WHERE table_B.status = 'APPROVED'"; 
+0

legal ist, aber ich habe das: Warnung: mysql_num_rows() erwartet Parameter 1 als Ressource, boolean in Zeile $ count = mysql_num_rows ($ sql); –

0

Sie haben Syntaxfehler nehmen "TABLE_A" von "SET Menge" haben.

Correct syntaxs für UPDATE mit INNER JOIN:

UPDATE T1,T2 
[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1 
SET T1.C2 = T2.C2, 
    T2.C3 = expr 
WHERE condition 

Abfrage:

$sql="UPDATE table_A 
INNER JOIN table_B ON table_A.name = table_B.name 
SET table_A.quantity = table_A.quantity - table_B.quantity 
WHERE table_B.status = 'APPROVED'"; 
+0

aber, ich habe das: Warnung: mysql_num_rows() erwartet Parameter 1 als Ressource, boolean gegeben in Zeile $ count = mysql_num_rows ($ sql); –

+0

Sie müssen mysql_affected_rows() verwenden. –