Mysql 您的SQL语法有问题,但不知道原因
您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 在6号线附近 我没能找到这个错误的原因 在插入中,括号应用于列出列,而不是用于生成数据的查询 在本例中,您似乎知道数据具有相同的格式,因此不使用列列表是可以的——尽管创建表as比插入更好 无论如何:Mysql 您的SQL语法有问题,但不知道原因,mysql,sql,Mysql,Sql,您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 在6号线附近 我没能找到这个错误的原因 在插入中,括号应用于列出列,而不是用于生成数据的查询 在本例中,您似乎知道数据具有相同的格式,因此不使用列列表是可以的——尽管创建表as比插入更好 无论如何: INSERT INTO tkblue_tklabel_dev_archdata.EmailContent2016 ( SELECT tkblue_tklabel_dev_data.EmailContent.*
INSERT INTO tkblue_tklabel_dev_archdata.EmailContent2016
(
SELECT tkblue_tklabel_dev_data.EmailContent.*
FROM tkblue_tklabel_dev_data.EmailContent
LEFT JOIN tkblue_tklabel_dev_archdata.EmailTracking ON tkblue_tklabel_dev_archdata.EmailTracking.id = tkblue_tklabel_dev_data.EmailContent.idEmailParam
WHERE (tkblue_tklabel_dev_archdata.EmailTracking.EmailDate <= "2016-12-31 23:59:59" and tkblue_tklabel_dev_archdata.EmailTracking.EmailDate >= "2016-01-01 00:00:00");
);
您需要删除分号>=2016-01-01 00:00:00;在路的尽头,在哪里line@nacho我认为这可能是一个答案
INSERT INTO tkblue_tklabel_dev_archdata.EmailContent2016
SELECT ec.*
FROM tkblue_tklabel_dev_data.EmailContent ec JOIN
tkblue_tklabel_dev_archdata.EmailTracking et
ON et.id = ec.idEmailParam
WHERE et.EmailDate < '2017-01-01' AND
et.EmailDate >= '2016-01-01';
INSERT INTO tkblue_tklabel_dev_archdata.EmailContent2016
SELECT ec.*
FROM tkblue_tklabel_dev_data.EmailContent ec
WHERE EXISTS (SELECT 1
FROM tkblue_tklabel_dev_archdata.EmailTracking et
WHERE et.id = ec.idEmailParam AND
et.EmailDate < '2017-01-01' AND
et.EmailDate >= '2016-01-01'
);