【问题标题】:Return first matching row返回第一个匹配行
【发布时间】:2013-08-14 13:39:56
【问题描述】:

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

  1. ACCT_GUID_REF 有 2 个字段:帐户号 (ACCTNBR) 和该帐号的 GUID (AcctIDGUID)。
  2. RESTAURANTS 具有每个餐厅的新详细信息行。

当我添加新行时,我想用表ACCT_GUID_REF 中的匹配帐户更新RESTAURANTS.ACCT_GUID 列。

我试过这个,但它返回不止一行,因为表 RESTAURANT 中有多个餐厅帐户行。如何修复更新?

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

【问题讨论】:

    标签: sql-server-2008 sql-update


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多