mysql - JOIN 上的 SQL 语法错误

标签 mysql sql

我的表格:

        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/

相关文章:

php - Laravel - 尝试获取非对象形式错误的属性

java.sql 与 mysql.jdbc

javascript - Sequelize 在 where 子句中查找表的最高值

php - 是否可以选择数据库表的某些元素?

sql - 如何给 dplyr 一个 SQL 查询并让它返回一个远程 tbl 对象?

mysql - 在 Sequelize 中未定义 findOne 属性

Python 字典和使用 pymysql 的参数化 MySQL(安全编码)

mysql - 根据基准日期重复数据计数

sql - 如何进行 Postgresql 组聚合 : 2 fields using one to select the other

sql - 如何在Oracle SQL中对同一行的列进行排名