我有一个查询,可以根据行是否存在来更新或插入。
然后我还将它连接到辅助表,以便我可以在正确的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
任何人都能解释我误解的内容以及我如何解决它?
答案 0 :(得分:1)
insert
语句不带别名。我想你想要这样的东西:
INSERT INTO resources(quantity, tid)
SELECT ?, u.tid
FROM users u
WHERE u.uid = ?
ON DUPLICATE KEY
UPDATE quantity = quantity+?