2013-07-16 49 views
0

我有一個查詢,它根據行是否存在而被假定更新或插入。鏈接到輔助表的插入/更新查詢的MYSQL語法錯誤

然後,我也將它連接到輔助表,所以我可以將它們連接到正確的ID,但即時獲取語法錯誤,我不確定如何解決它。

這是我的查詢:

INSERT INTO resources as r (r.quantity,r.tid) 
    SELECT r.quantity+?,u.tid            
    FROM users u WHERE u.uid = ? 
ON DUPLICATE KEY UPDATE 
    r.quantity = r.quantity+?, r.tid = u.tid 

的錯誤是

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 'as r (r.quantity,r.tid) SELECT 
r.quantity+'0',u.tid FR' at line 1 

任何一個能說明什麼,我有誤解,以及如何解決呢?

回答

1

insert語句不帶別名。我想你想要的東西是這樣的:

INSERT INTO resources(quantity, tid) 
    SELECT ?, u.tid            
    FROM users u 
    WHERE u.uid = ? 
    ON DUPLICATE KEY 
     UPDATE quantity = quantity+? 
+0

這兩個表之間的鏈接'r.tid = u.tid'怎麼樣? – Sir