Mysql语法帮助
嗨,我是mysql的新手,我做了如下声明Mysql语法帮助,mysql,Mysql,嗨,我是mysql的新手,我做了如下声明 UPDATE parent, chill SET parent.iod=chill.iod WHERE parent.id=chill.id 我想做的是将所有iod从chill复制到应该匹配id的父级 但结果是,所有更新的iod都被设置为11,而不是chill中的iod iod的类型为 BIGINT 语法上有错误吗,或者我做错了什么 感谢您的帮助,不需要太多解释。: 前面的示例显示了使用逗号运算符的内部联接,但多个表更新语句可以使用SELECT语
UPDATE parent, chill SET parent.iod=chill.iod WHERE parent.id=chill.id
我想做的是将所有iod从chill复制到应该匹配id的父级
但结果是,所有更新的iod都被设置为11,而不是chill中的iod
iod的类型为
BIGINT
语法上有错误吗,或者我做错了什么
感谢您的帮助,不需要太多解释。:
前面的示例显示了使用逗号运算符的内部联接,但多个表更新语句可以使用SELECT语句中允许的任何类型的联接,例如LEFT join
尽管您的示例也应该适用,但请尝试以下操作:
UPDATE parent
INNER JOIN chill
ON parent.id = chill.id
SET parent.iod = chill.iod
为什么是内部连接?我没有正确理解这个问题。@ThinkCode:他只想要具有匹配ID的行→ 这有什么不同吗?更新parent,chill SET parent.iod=chill.iod,其中parent.id=chill.id@ThinkCode:不应该,这就是我在回答中提到的原因»尽管你的例子也应该有效«嘿,非常感谢..实际上这是我的错误,我将它声明为bigint,而不是需要声明为varchar。:SELECT DISTINCT iod FROM chill的输出是什么;?