INSERT INTO SELECT 不加重复值,执行报错

sti01 2017-09-15 09:48:45
INSERT INTO table1 (a,b,c) SELECT (d,e,concat( '字符1',f,'字符2')) FROM table2 WHERE d NOT IN (SELECT a FROM table1);
这条语句是需要将table2中的数据插入table1,字段对应赋值d=>a,e=>b,concat( '字符1',f,'字符2')=>c,同时如果d值已在table1的a字段中存在,则为重复值,不添加。
执行后显示错误:Operand should contain 1 column(s)

删除SELECT后面的括号后,语句变为
INSERT INTO table1 (a,b,c) SELECT d,e,concat( '字符1',f,'字符2') FROM table2 WHERE d NOT IN (SELECT a FROM table1);
执行后错误提示为:
Duplicate entry 'a字段的值' for key 'a'

请问,这语句应怎样写?
...全文
433 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2017-09-18
  • 打赏
  • 举报
回复
table2 中d有重复值。
sti01 2017-09-18
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
table2 中d有重复值。
将错误提示:Duplicate entry 'a字段的值' for key 'a' 中的 'a字段的值'在table2中搜索,只有一条相关记录,没有重复

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧