繁体   English   中英

MySQL,带有内部联接的更新查询无提示失败

[英]MySQL, Update query with inner joins fails silently

我有带有内部联接的MySQL查询更新不起作用,而带有内部联接的类似选择查询则完美运行。

工作中的SELECT查询

SELECT fa.tax_rate, efa.entity_id
FROM water_civicrmv2.civicrm_financial_account as fa
    INNER JOIN water_civicrmv2.civicrm_entity_financial_account efa ON efa.financial_account_id = fa.id 
    INNER JOIN water_civicrmv2.civicrm_option_value cov ON cov.value = efa.account_relationship
    INNER JOIN water_civicrmv2.civicrm_option_group cog ON cog.id = cov.option_group_id
    WHERE efa.entity_table = 'civicrm_financial_type'
    AND cov.name = 'Sales Tax Account is'
    AND cog.name = 'account_relationship'
    AND fa.is_active = 1

失败的UPDATE查询

 UPDATE water_civicrmv2.civicrm_financial_account as fa
    INNER JOIN water_civicrmv2.civicrm_entity_financial_account efa ON efa.financial_account_id = fa.id 
    INNER JOIN water_civicrmv2.civicrm_option_value cov ON cov.value = efa.account_relationship
    INNER JOIN water_civicrmv2.civicrm_option_group cog ON cog.id = cov.option_group_id
    SET fa.tax_rate = '123123' 
    WHERE efa.entity_table = 'civicrm_financial_type'
    AND cov.name = 'Sales Tax Account is'
    AND cog.name = 'account_relationship'
    AND fa.is_active = 1

我真的不知道为什么它会无声地失败,因为没有语法错误,什么也没发生。

更改您的更新SQL,以便UPDATE的对象仅是单个表water_civicrmv2.civicrm_financial_account:

 UPDATE water_civicrmv2.civicrm_financial_account as fa
    SET fa.tax_rate = '123123' 
    WHERE fa.id = 
          (SELECT fa.id
             FROM water_civicrmv2.civicrm_entity_financial_account efa
             INNER JOIN water_civicrmv2.civicrm_option_value cov ON cov.value = efa.account_relationship
             INNER JOIN water_civicrmv2.civicrm_option_group cog ON cog.id = cov.option_group_id
             WHERE efa.financial_account_id = fa.id 
               AND efa.entity_table = 'civicrm_financial_type'
               AND cov.name = 'Sales Tax Account is'
               AND cog.name = 'account_relationship'
               AND fa.is_active = 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM