SQL问题,子查询返回的值不止一个!

希望用B表的单价去更新A表的单价,我写的代码是 update A set A.单价=B.单价 from A,B where A.商品名称=B.ID 提示‘子查询返回的值不止一个’!要怎么写这个代码啊。

执行后报下面的错误,是哪里出错了?帮看下,谢谢.

"消息 512,级别 16,状态 1,第 1 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-19
你这是啥数据库,不同的数据库对SQL要求不一样的,如果是SQL Server,这样写是没问题的
update 表A set 表A.单价=表B.单价 from 表A,表B where 表A.商品名称=表B.ID
不过既然你AB是用名称ID关联,那A表中就没有存储单价的必要。追问

SQLserver2008 这个句子不行啊,提示子查询返回的值不止一个

本回答被网友采纳
第2个回答  2018-03-19
update A set A.单价=B.单价 from A left join B on (A.名称=B.ID)
相似回答