【问题标题】:Unable to compute a Delete Query with Joins无法使用联接计算删除查询
【发布时间】:2012-12-02 13:15:46
【问题描述】:
    `IF(@ParentField = 'Reason for call - Primary Issue')
    BEGIN
        DELETE FROM dbo.ControlBrandMapping CBM
            INNER JOIN dbo.ControlManagement CM ON CM.ID = CBM.CONTROLID
                WHERE CM.DefaultName = 'Reason for call - Sub Issue' AND CBM.BRANDID = @BrandId
    END`

我尽力让它看起来尽可能整洁。 我收到此错误 - “'CBM' 附近的语法不正确。” 请帮忙

【问题讨论】:

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


    【解决方案1】:

    您在DELETE 子句之后缺少别名CBM。试试这个:

        DELETE CBM
        FROM dbo.ControlBrandMapping CBM
        INNER JOIN dbo.ControlManagement CM ON CM.ID = CBM.CONTROLID
        WHERE CM.DefaultName = 'Reason for call - Sub Issue' 
          AND @ParentField = 'Reason for call - Primary Issue'
          AND CBM.BRANDID = @BrandId
    

    【讨论】:

      【解决方案2】:

      我不确定,我刚开始,但据我所知,在加入时,我认为应该是INNER JOIN dbo.ControlManagement CM ON (CM.ID = CBM.CONTROLID) 注意括号,但我可能错了

      【讨论】:

      • 删除后我只是跳过了 CBM。括号不是必需的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      相关资源
      最近更新 更多