我的表格:
USERS_1: USERS_2:
+------------+---------+ +------------+---------+
| id |username | | username |claimedBy|
+------------+---------+ +------------+---------+
| 4 | pitiqu | | myUsername | NULL |<- this should become 4
+------------+---------+ +------------+---------+
MY SQL:(字面意思是 MySQL)
UPDATE UL
SET UL.claimedBy = US.username
FROM USERS_1 as UL
INNER JOIN USERS_2 as US
ON US.id = 4
where UL.username="myUsername"
很明显,我想将表 2 的 claimed_by(用户名“myUsername”)设置为表 1 中 id = 4 处的用户名“pitiqu”。
如果所有的“用户名”令人困惑,我很抱歉。希望表格和 SQL 能解决我的问题。
弹出的错误:
#1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 3 行的 'FROM USERS_1 as UL INNER JOIN USERS_2 as US ON US.id = 4 where UL' 附近使用的正确语法
为什么会这样……有人吗?
EDIT :请原谅语法不正确。我一直在尝试使用 THIS例如,在编辑它时我删除了 SET。
最佳答案
您可以使用这样的更新查询:
update
USERS_2
set
claimedBy = (SELECT username FROM USERS_1 WHERE id=4)
where
username="myUsername"
如果你想要一个连接,正确的语法是这样的,但是在这个特定的上下文中它没有多大意义,我建议你使用第一个查询:
UPDATE
USERS_1 as UL INNER JOIN USERS_2 as US ON US.id = 4
SET
UL.claimedBy = US.username
WHERE
UL.username="myUsername"
关于mysql - JOIN 上的 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34634300/