首页 > 解决方案 > 挣扎于 SQL 语法 - 请问我错过了什么?(这里是 SQL 新手)

问题描述

我正在尝试将旧表中的数据提取到新表中,将旧系统中的客户注释提取到新表中...我有两个表,只是想比较一个表中保存的电子邮件地址以将相关注释插入到新表中桌子。

但是下面的 SQL 抛出了一个错误,我希望比我更有经验的人能很容易地发现......

SQL查询:

UPDATE JB_hikashop_user
SET ourusernotes = JB_old_customers.oldNotes
FROM JB_hikashop_user
LEFT JOIN JB_old_customers
ON JB_hikashop_user.user_email = JB_old_customers.exEmail
WHERE JB_hikashop_user.user_email = JB_old_customers.exEmail

MySQL 说:文档

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“FROM JB_hikashop_user LEFT JOIN JB_old_customers ON JB_hikashop_user.user_emai”附近使用正确的语法

我在这里有绝望的危险......这么简单的事情,但我被困住了!

标签: mysql

解决方案


UPDATE查询没有FROM子句,之后的表UPDATE用于此目的。

SET子句必须在UPDATEandJOIN子句之后。尽管 SQL 看起来像英语,并且您认为它可以灵活地处理子句的顺序,但实际上它非常严格。

UPDATE JB_hikashop_user
LEFT JOIN JB_old_customers ON JB_hikashop_user.user_email = JB_old_customers.exEmail
SET ourusernotes = JB_old_customers.oldNotes
WHERE JB_hikashop_user.user_email = JB_old_customers.exEmail

推荐阅读