「MySQL」UPDATE如何将B表的一列数据导入到A表中?

thepoy 2019-07-04 12:05:27
自学MySQL时,创建了两个表,一个表是movies,一个表是info,info里只有一列「导演」的名字,而movies里「导演」的内容均为NULL。

TABLE movies:
+--------+-----------------------------+-----------------------------+--------+--------+
| 排名 | 电影名 | 类型 | 评分 | 导演 |
+--------+-----------------------------+-----------------------------+--------+--------+
| 1 | 《肖申克的救赎》 | 犯罪 剧情 | 9.6 | NULL |
| 2 | 《霸王别姬》 | 剧情 爱情 同性 | 9.6 | NULL |
| 3 | 《这个杀手不太冷》 | 剧情 动作 犯罪 | 9.4 | NULL |
| 4 | 《阿甘正传》 | 剧情 爱情 | 9.4 | NULL |
| 5 | 《美丽人生》 | 剧情 喜剧 爱情 战争 | 9.5 | NULL |
| 6 | 《泰坦尼克号》 | 剧情 爱情 灾难 | 9.4 | NULL |
| 7 | 《千与千寻》 | 剧情 动画 奇幻 | 9.3 | NULL |
+--------+-----------------------------+-----------------------------+--------+--------+


TABLE info:
+--------+-------------------------+
| 序号 | 导演 |
+--------+-------------------------+
| 1 | 弗兰克·德拉邦特 |
| 2 | 陈凯歌 |
| 3 | 吕克·贝松 |
| 4 | 罗伯特·泽米吉斯 |
| 5 | 罗伯托·贝尼尼 |
| 6 | 詹姆斯·卡梅隆 |
| 7 | 宫崎骏 |
+--------+-------------------------+


使用
UPDATE movies SET 导演 = ( SELECT 导演 FROM info);


报错:
ERROR 1242 (21000): Subquery returns more than 1 row
...全文
210 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2019-07-04
  • 打赏
  • 举报
回复
引用 2 楼 thepoy 的回复:
[quote=引用 1 楼 二月十六 的回复:]
UPDATE movies SET 导演 = ( SELECT TOP 1 导演 FROM info WHERE movies.排名 = 序号);
"TOP 1"是什么意思呢?按您的代码运行,报错,把"TOP 1"删了,反而能达到预期效果了。[/quote] 奥奥你的事mysql,mysql用limit ,是防止出现一对多里边查询出一个结果集多条的问题,如果没有这个关系就不用加
thepoy 2019-07-04
  • 打赏
  • 举报
回复
引用 1 楼 二月十六 的回复:
UPDATE movies SET 导演 = ( SELECT TOP 1 导演 FROM info WHERE movies.排名 = 序号);
"TOP 1"是什么意思呢?按您的代码运行,报错,把"TOP 1"删了,反而能达到预期效果了。
二月十六 2019-07-04
  • 打赏
  • 举报
回复
UPDATE movies SET 导演 = ( SELECT TOP 1 导演 FROM info WHERE movies.排名 = 序号);

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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