0

这是我的更新查询。

    UPDATE sugarcrm.qb_salesorders_leads_c, sugarcrm.qb_salesorders
    SET sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsleads_ida = sugarcrm.qb_salesorders.memo, sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsqb_salesorders_idb = sugarcrm.qb_salesorders.id
    WHERE sugarcrm.qb_salesorders.id = sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsqb_salesorders_idb

当我运行它时,它给了我受影响的行 0。

这是我使用 WHERE 语句中相同信息的 select 语句。

    SELECT * from qb_salesorders_leads_c, sugarcrm.qb_salesorders 
    WHERE sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsqb_salesorders_idb = sugarcrm.qb_salesorders.id

这将返回 354 行,这是我期望在更新查询中更新的。我错过了什么。请帮忙!

4

2 回答 2

1

将隐式连接转换为显式连接:

UPDATE sugarcrm.qb_salesorders_leads_c leads 
    INNER JOIN sugarcrm.qb_salesorders orders
    ON orders.id = leads.qb_salesorders_leadsqb_salesorders_idb
SET leads.qb_salesorders_leadsleads_ida = orders.memo, 
    leads.qb_salesorders_leadsqb_salesorders_idb = orders.id

如您所见,我还使用别名来使 SQL 紧凑易读。

于 2012-05-21T20:15:50.020 回答
0

要使用连接进行更新,您必须使用显式连接语法:

UPDATE sugarcrm.qb_salesorders_leads_c
INNER JOIN sugarcrm.qb_salesorders
    ON qb_salesorders_leadsqb_salesorders_idb.id 
        = sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsqb_salesorders_idb
SET sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsleads_ida 
        = qb_salesorders_leadsqb_salesorders_idb.memo
    , sugarcrm.qb_salesorders_leads_c.qb_salesorders_leadsqb_salesorders_idb 
        = sugarcrm.qb_salesorders.id
于 2012-05-21T20:15:43.540 回答