2017-03-10 17 views
0

我有一個錯誤提示「您的SQL語法有錯誤;請檢查與您的對應的手冊MySQL服務器版本正確的語法在1號線「附近使用 'FROM表-A INNER JOIN表-B ON table_A.name = table_B.name'SQL語法錯誤:'FROM table_A INNER JOIN table_B ON table_A.name = table_B.name'在第1行

SQL查詢是:

$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'"; 

請大家幫我出這個錯誤。謝謝。

+0

INNER應該是內部聯接? – manderson

+0

你寫了'INNER'而不是'INNER JOIN' –

+0

uppsss抱歉。這是一個錯字。我正在使用INNER JOIN –

回答

0

「內部」 應爲 「INNER JOIN」

我想你也必須從 「SET量」

$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

,但是,我有這個:警告:mysql_num_rows()期望參數1是資源,布爾給出行$計數= mysql_num_rows($ SQL); –

0

你有語法錯誤採取了 「表-A」。

UPDATEINNER JOIN正確syntaxs:

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

查詢:

$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

但是,我已經得到了這個:警告:mysql_num_rows()期望參數1是資源,在$ count = mysql_num_rows($ sql)中給出布爾值。 –

+0

您必須使用mysql_affected_rows()。 –