返回第一个匹配的行

时间:2013-08-14 13:39:57

标签: sql-server-2008 sql-update

很抱歉,如果这是一个基本问题,但我只是SQL的初学者。我有2张桌子:

  1. ACCT_GUID_REF有2个字段:该帐号的帐号(ACCTNBR)和GUID(AcctIDGUID)。
  2. 表格RESTAURANTS包含每家餐厅的新详细信息行。
  3. 当我添加新行时,我想使用表RESTAURANTS.ACCT_GUID中的匹配帐户更新ACCT_GUID_REF列。

    我尝试了这个,但由于表RESTAURANT中有多个餐馆帐户行,因此会返回多行。我该如何修复UPDATE?

    UPDATE RESTAURANTS
    SET RESTAURANTS.ACCT_GUID =
    (SELECT AcctIDGUID 
        FROM ACCT_GUID_REF
        WHERE ACCT_GUID_REF.ACCTNBR = RESTAURANTS.ACCTNBR)  
    

1 个答案:

答案 0 :(得分:1)

听起来你可能想在UPDATE语句的源代码中进行INNER JOIN。

UPDATE RESTAURANTS
   SET ACCT_GUID = A.AcctIDGuid
  FROM ACCT_GUID_REF A
       INNER JOIN RESTAURANTS R
               ON A.ACCTNBR = R.ACCTNBR