使用基于子查询

时间:2016-05-16 01:08:13

标签: sql sql-server sql-server-2008

我有一个表(CMS),需要根据CMS中的列和另一个表(CUST)更新列... CUST中的行由CMS和&中的公共列引用。 CUST打电话给CUSTNUM ......我不能按照预期的方式工作,有什么帮助吗?

update CMS
set SHIPLIST = 'FEG'
from CMS
inner join CUST on CMS.CUSTNUM = CUST.CUSTNUM

谢谢。

4 个答案:

答案 0 :(得分:0)

您的查询看起来很好。还有其他表达查询的方法,例如:

update CMS
    set SHIPLIST = 'FEG'
    where CMS.CUSTNUM in (select Cust.CUSTNUM from Cust);

如果Cust表中存在多个匹配项,则可以获得更好的性能。但是,如果您的第一个版本失败,那么这也可能会失败。

答案 1 :(得分:0)

您也可以使用相关更新查询

请参阅以下帖子:

https://www.ibm.com/support/knowledgecenter/ssw_i5_54/sqlp/rbafyexsub4.htm

答案 2 :(得分:0)

不确定sql server。但这将适用于MySQL

  update CMS
    inner join CUST on CMS.CUSTNUM = CUST.CUSTNUM
    set CMS.SHIPLIST = 'FEG'

序列首先 JOIN 然后 SET

答案 3 :(得分:0)

你的查询看起来很好......当我在我的测试实验室检查时,它有效。

更新CMS 设置SHIPLIST ='FEG' 来自CMS 内部联接CUST在CMS.CUSTNUM = CUST.CUSTNUM