mysql5资源共享

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

[MS-SQL Server] 【疑难】多表查询的不会更新了修改就报错

[复制链接]

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2019-7-11 12:30:30 | 显示全部楼层 |阅读模式
SELECT"dbo"."a"."b","dbo"."PtypePrice"."RetailPrice"FROM"dbo"."PtypePrice","dbo"."ptype","dbo"."a"
WHERE"dbo"."PtypePrice"."PRec"="dbo"."ptype"."Rec"AND"dbo"."ptype"."UserCode"="dbo"."a"."a"AND("dbo"."PtypePrice"."Unit"=1)
这是3个表关联的查询通了,修改却报错子查询。
想把a表b列的数据更新到"dbo"."PtypePrice"."RetailPrice"报错
我是这样改不知道哪错了提示
查询返回的值多于一个。当子查询跟随在=、!=、、>=之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。

updatePtypePricesetRetailPrice=

(SELECT"dbo"."a"."b"FROM"dbo"."PtypePrice","dbo"."ptype","dbo"."a"
WHERE"dbo"."PtypePrice"."PRec"="dbo"."ptype"."Rec"AND"dbo"."ptype"."UserCode"="dbo"."a"."a"AND("dbo"."PtypePrice"."Unit"=1))

我查询的时候b列和RetailPrice列都有数据的行数是一样的






回复

使用道具 举报

0

主题

7

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-7-11 13:42:57 | 显示全部楼层
updatetablesetcolumn=value,这里主语句没有where条件,应该是update一行=select多行了
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-11 14:27:42 | 显示全部楼层
我刚想到…这样语句好复杂了
update PtypePrice  set  RetailPrice   =

(SELECT "dbo"."a"."b" FROM "dbo"."PtypePrice" , "dbo"."ptype" , "dbo"."a"
WHERE "dbo"."PtypePrice"."PRec" = "dbo"."ptype"."Rec" AND "dbo"."ptype"."UserCode" = "dbo"."a"."a" AND ("dbo"."PtypePrice"."Unit" = 1))
where
SELECT  "dbo"."PtypePrice"."RetailPrice" FROM "dbo"."PtypePrice" , "dbo"."ptype" , "dbo"."a"
WHERE "dbo"."PtypePrice"."PRec" = "dbo"."ptype"."Rec" AND "dbo"."ptype"."UserCode" = "dbo"."a"."a" AND ("dbo"."PtypePrice"."Unit" = 1)

这样的思路?我是不是错了
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-11 14:27:51 | 显示全部楼层
我刚想到…这样语句好复杂了
update PtypePrice  set  RetailPrice   =

(SELECT "dbo"."a"."b" FROM "dbo"."PtypePrice" , "dbo"."ptype" , "dbo"."a"
WHERE "dbo"."PtypePrice"."PRec" = "dbo"."ptype"."Rec" AND "dbo"."ptype"."UserCode" = "dbo"."a"."a" AND ("dbo"."PtypePrice"."Unit" = 1))
where
SELECT  "dbo"."PtypePrice"."RetailPrice" FROM "dbo"."PtypePrice" , "dbo"."ptype" , "dbo"."a"
WHERE "dbo"."PtypePrice"."PRec" = "dbo"."ptype"."Rec" AND "dbo"."ptype"."UserCode" = "dbo"."a"."a" AND ("dbo"."PtypePrice"."Unit" = 1)

这样的思路?我是不是错了
回复

使用道具 举报

0

主题

7

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-7-11 16:47:50 | 显示全部楼层
可以这样写,三表查询的话再加一个关联
updateaseta.column1=b.column1fromtable1aleftjointable2bona.关联=b.关联
where过滤条件
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-11 19:26:18 | 显示全部楼层
晕死还是错水平有限
能不能提供个三表修改关联
的例子
回复

使用道具 举报

1

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2019-7-12 05:21:39 | 显示全部楼层
UPDATEPtypePriceSETPtypePrice.RetailPrice=abcd.b
fromPtypePrice,ptype,abcd
where"dbo"."PtypePrice"."PRec"="dbo"."ptype"."Rec"AND"dbo"."ptype"."UserCode"="dbo"."abcd"."a"AND("dbo"."PtypePrice"."Unit"=1)可弄对了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-10-22 06:34 , Processed in 0.046598 second(s), 18 queries .

Powered by MySQL5.com X3.4

© 2003-2019 MySQL5.com.

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