0

我有一个查询,假设根据该行是否存在来更新或插入。

然后我还将它连接到一个辅助表,这样我就可以将它们链接到正确的 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

任何人都能够解释我误解了什么以及我如何解决它?

4

1 回答 1

1

insert语句不使用别名。我想你想要这样的东西:

INSERT INTO resources(quantity, tid)
    SELECT ?, u.tid                                             
    FROM users u
    WHERE u.uid = ? 
    ON DUPLICATE KEY
        UPDATE quantity = quantity+?
于 2013-07-16T02:04:57.343 回答