mysql5资源共享

 找回密码
 立即注册
查看: 71|回复: 6

[MS-SQL Server] 【疑难】[求解][SQL Server]update 和 select 条件一样的情况下为什么执行条数不一样?

[复制链接]

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2019-7-19 10:39:40 | 显示全部楼层 |阅读模式

3237.png

3237.png



--在同样条件下,select执行数据行数400行,但update执行数据385行。
--为什么存在满足条件的没有被up,这样update的写法是不是会出现误差?这样写不对的话,有其他办法能解决吗?
--有没有大神能解释下,实在是想不通。


UPDATETB_ProductInfo
SETTB_ProductInfo.TypeNo=TB_NationalClassification.TypeNo
FROMTB_ProductInfo
        INNERJOINTB_NationalClassification
ONTB_ProductInfo.Name=TB_NationalClassification.ProductNameWHERELevel=7

SELECT*
FROMTB_ProductInfo
        INNERJOINTB_NationalClassification
ONTB_ProductInfo.Name=TB_NationalClassification.ProductNameWHERELevel=7
回复

使用道具 举报

7

主题

531

帖子

1089

积分

金牌会员

Rank: 6Rank: 6

积分
1089
发表于 2019-7-19 10:50:08 | 显示全部楼层
请检查TB_ProductInfo表上是否有触发器.
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-19 11:03:07 | 显示全部楼层
innerjoin后的行数可能会多于A表、B表的行数,但更新时则按实际更新的行数统计
回复

使用道具 举报

7

主题

531

帖子

1089

积分

金牌会员

Rank: 6Rank: 6

积分
1089
发表于 2019-7-19 11:03:40 | 显示全部楼层
引用1楼唐诗三百首的回复:请检查TB_ProductInfo表上是否有触发器.
没有触发器,这个updatesql没有问题吗?
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-19 11:10:59 | 显示全部楼层

3238.png

3238.png

回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-19 11:12:30 | 显示全部楼层
2楼说的有理,
查询时,取A表和B表的交集,可能是一对多关系,例如A表1行对应B表400行,所以返回400行.
更新A表时,取A表和B表的交集,所以实际更新只有1行.
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-19 11:21:46 | 显示全部楼层
引用2楼HelloWorld,的回复:innerjoin后的行数可能会多于A表、B表的行数,但更新时则按实际更新的行数统计
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|mysql5.com Inc. ( 闽ICP备17002856号-1 )

GMT+8, 2019-10-23 01:10 , Processed in 0.044429 second(s), 21 queries .

Powered by MySQL5.com X3.4

© 2003-2019 MySQL5.com.

快速回复 返回顶部 返回列表