【求助】update语句怎么用

fate1985 2017-08-25 09:56:55
不是update 某个值 是整个列
update fy17_1qtest set fy17_1qtest.yymm=test.yymm
就是在fy17_1qtest 的yymm 更新为 test 表格中的yymm值
怎么写?

求助
...全文
896 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 22 楼 kaijie_wu1209 的回复:
----查数据
select A.fy17_1qtest,B.yymm FROM fy17_1qtest AS A
INNER JOIN TEST B ON B.ID=A.ID
---更新数据
UPDATE A SET A.fy17_1qtest=B.yymm
FROM fy17_1qtest AS A
INNER JOIN TEST B ON B.ID=A.ID
用insert 会快很多 但是加在表后了 希望在null的地方加入 怎么写?
小野马1209 2017-08-25
  • 打赏
  • 举报
回复
----查数据
select A.fy17_1qtest,B.yymm FROM fy17_1qtest AS A
INNER JOIN TEST B ON B.ID=A.ID
---更新数据
UPDATE A SET A.fy17_1qtest=B.yymm
FROM fy17_1qtest AS A
INNER JOIN TEST B ON B.ID=A.ID
OwenZeng_DBA 2017-08-25
  • 打赏
  • 举报
回复
引用 20 楼 fate1985 的回复:
[quote=引用 19 楼 z10843087 的回复:] [quote=引用 18 楼 fate1985 的回复:] [quote=引用 16 楼 z10843087 的回复:] [quote=引用 14 楼 z10843087 的回复:] [quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote]
  UPDATE fy17_1qtest  
INNER JOIN test  
ON fy17_1qtest.id = test.id 
SET fy17_1qtest.yymm = test.yymm
用这个试试[/quote] 可以运行了不过速度超慢 我已经 按照顺序做了表 只要复制进去就行的命令有没有?[/quote] 速度慢的话,可能是表上没索引,表上的数据量多大? 你自己做了一个fy17_1qtest 的表吗? [/quote] 没有索引 excel直接导入的 58万行[/quote] 58万行业没有特别久吧,你就让他跑呗,反正只跑一次,对吧
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 19 楼 z10843087 的回复:
[quote=引用 18 楼 fate1985 的回复:] [quote=引用 16 楼 z10843087 的回复:] [quote=引用 14 楼 z10843087 的回复:] [quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote]
  UPDATE fy17_1qtest  
INNER JOIN test  
ON fy17_1qtest.id = test.id 
SET fy17_1qtest.yymm = test.yymm
用这个试试[/quote] 可以运行了不过速度超慢 我已经 按照顺序做了表 只要复制进去就行的命令有没有?[/quote] 速度慢的话,可能是表上没索引,表上的数据量多大? 你自己做了一个fy17_1qtest 的表吗? [/quote] 没有索引 excel直接导入的 58万行
OwenZeng_DBA 2017-08-25
  • 打赏
  • 举报
回复
引用 18 楼 fate1985 的回复:
[quote=引用 16 楼 z10843087 的回复:] [quote=引用 14 楼 z10843087 的回复:] [quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote]
  UPDATE fy17_1qtest  
INNER JOIN test  
ON fy17_1qtest.id = test.id 
SET fy17_1qtest.yymm = test.yymm
用这个试试[/quote] 可以运行了不过速度超慢 我已经 按照顺序做了表 只要复制进去就行的命令有没有?[/quote] 速度慢的话,可能是表上没索引,表上的数据量多大? 你自己做了一个fy17_1qtest 的表吗?
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 16 楼 z10843087 的回复:
[quote=引用 14 楼 z10843087 的回复:] [quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote]
  UPDATE fy17_1qtest  
INNER JOIN test  
ON fy17_1qtest.id = test.id 
SET fy17_1qtest.yymm = test.yymm
用这个试试[/quote] 可以运行了不过速度超慢 我已经 按照顺序做了表 只要复制进去就行的命令有没有?
OwenZeng_DBA 2017-08-25
  • 打赏
  • 举报
回复
引用 15 楼 fate1985 的回复:
[quote=引用 14 楼 z10843087 的回复:] [quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote] …… 老mysql 怎么调整?[/quote] 上面发给你了
OwenZeng_DBA 2017-08-25
  • 打赏
  • 举报
回复
引用 14 楼 z10843087 的回复:
[quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote]
  UPDATE fy17_1qtest  
INNER JOIN test  
ON fy17_1qtest.id = test.id 
SET fy17_1qtest.yymm = test.yymm
用这个试试
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 14 楼 z10843087 的回复:
[quote=引用 13 楼 fate1985 的回复:] update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下[/quote] …… 老mysql 怎么调整?
OwenZeng_DBA 2017-08-25
  • 打赏
  • 举报
回复
引用 13 楼 fate1985 的回复:
update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
你这是MySQL 上面发的都是SQL SERVER的,你稍微调整下
fate1985 2017-08-25
  • 打赏
  • 举报
回复
update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd --------------------------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm=date_m.yymm FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date_m ON fy17_1qtest.`SO_DATE` = date_m.yymmdd' at line 无论用where 还是join 都报错
二月十六 版主 2017-08-25
  • 打赏
  • 举报
回复
引用 11 楼 fate1985 的回复:
[quote=引用 10 楼 sinat_28984567 的回复:] [quote=引用 9 楼 fate1985 的回复:] [quote=引用 7 楼 sinat_28984567 的回复:] [quote=引用 6 楼 fate1985 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:]
UPDATE  a
SET     a.yymm = b.yymm
FROM    fy17_1qtest a ,
        test b
WHERE   a.关联字段 = b.关联字段
a 是什么意思? 能解读一下吗?[/quote] a代表fy17_1qtest[/quote] 那 from 哪里不是有两个 "fy17_1qtest "?[/quote] 不就一个以后a代表fy17_1qtest ,不会再有fy17_1qtest [/quote] 报错[/quote] 改改
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 10 楼 sinat_28984567 的回复:
[quote=引用 9 楼 fate1985 的回复:] [quote=引用 7 楼 sinat_28984567 的回复:] [quote=引用 6 楼 fate1985 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:]
UPDATE  a
SET     a.yymm = b.yymm
FROM    fy17_1qtest a ,
        test b
WHERE   a.关联字段 = b.关联字段
a 是什么意思? 能解读一下吗?[/quote] a代表fy17_1qtest[/quote] 那 from 哪里不是有两个 "fy17_1qtest "?[/quote] 不就一个以后a代表fy17_1qtest ,不会再有fy17_1qtest [/quote] 报错
二月十六 版主 2017-08-25
  • 打赏
  • 举报
回复
引用 9 楼 fate1985 的回复:
[quote=引用 7 楼 sinat_28984567 的回复:] [quote=引用 6 楼 fate1985 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:]
UPDATE  a
SET     a.yymm = b.yymm
FROM    fy17_1qtest a ,
        test b
WHERE   a.关联字段 = b.关联字段
a 是什么意思? 能解读一下吗?[/quote] a代表fy17_1qtest[/quote] 那 from 哪里不是有两个 "fy17_1qtest "?[/quote] 不就一个以后a代表fy17_1qtest ,不会再有fy17_1qtest
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 7 楼 sinat_28984567 的回复:
[quote=引用 6 楼 fate1985 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:]
UPDATE  a
SET     a.yymm = b.yymm
FROM    fy17_1qtest a ,
        test b
WHERE   a.关联字段 = b.关联字段
a 是什么意思? 能解读一下吗?[/quote] a代表fy17_1qtest[/quote] 那 from 哪里不是有两个 "fy17_1qtest "?
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 4 楼 z10843087 的回复:
[quote=引用 3 楼 fate1985 的回复:] [quote=引用 1 楼 z10843087 的回复:] [quote=引用 楼主 fate1985 的回复:] 不是update 某个值 是整个列 update fy17_1qtest set fy17_1qtest.yymm=test.yymm 就是在fy17_1qtest 的yymm 更新为 test 表格中的yymm值 怎么写? 求助
写法如下,你需要把2个表JOIN起来,我用的是ID ,你要用你自己的列
UPDATE  fy17_1qtest
SET     fy17_1qtest.yymm = test.yymm
FROM    fy17_1qtest f
        JOIN test t ON f.id = t.id 
[/quote] f 指什么[/quote] f是我加的别名 f是fy17_1qtest ,t是 test [/quote] 一直报 -------------------------------------------------------------------------- update fy17_1qtest set fy17_1qtest.yymm = test.yymm FROM fy17_1qtest INNER JOIN date ON fy17_1qtest.yymm = test.yymm --------------------------------------------------------------------------- [SQL]update fy17_1qtest set fy17_1qtest.yymm = test.yymm FROM fy17_1qtest INNER JOIN date ON fy17_1qtest.yymm = test.yymm [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fy17_1qtest INNER JOIN date ON fy17_1qtest.yymm = test.yymm' at line 3
二月十六 版主 2017-08-25
  • 打赏
  • 举报
回复
引用 6 楼 fate1985 的回复:
[quote=引用 2 楼 sinat_28984567 的回复:]
UPDATE  a
SET     a.yymm = b.yymm
FROM    fy17_1qtest a ,
        test b
WHERE   a.关联字段 = b.关联字段
a 是什么意思? 能解读一下吗?[/quote] a代表fy17_1qtest
fate1985 2017-08-25
  • 打赏
  • 举报
回复
引用 2 楼 sinat_28984567 的回复:
UPDATE  a
SET     a.yymm = b.yymm
FROM    fy17_1qtest a ,
        test b
WHERE   a.关联字段 = b.关联字段
a 是什么意思? 能解读一下吗?
oqqken12345 2017-08-25
  • 打赏
  • 举报
回复
UPDATE fy17_1qtest SET fy17_1qtest.yymm = test.yymm FROM fy17_1qtest f JOIN test t ON f.id = t.id 条件fy17_1qtest.id = test.id 把2个表JOIN连起来
OwenZeng_DBA 2017-08-25
  • 打赏
  • 举报
回复
引用 3 楼 fate1985 的回复:
[quote=引用 1 楼 z10843087 的回复:] [quote=引用 楼主 fate1985 的回复:] 不是update 某个值 是整个列 update fy17_1qtest set fy17_1qtest.yymm=test.yymm 就是在fy17_1qtest 的yymm 更新为 test 表格中的yymm值 怎么写? 求助
写法如下,你需要把2个表JOIN起来,我用的是ID ,你要用你自己的列
UPDATE  fy17_1qtest
SET     fy17_1qtest.yymm = test.yymm
FROM    fy17_1qtest f
        JOIN test t ON f.id = t.id 
[/quote] f 指什么[/quote] f是我加的别名 f是fy17_1qtest ,t是 test
加载更多回复(8)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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