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 するには、明示的な結合構文を使用する必要があります。

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 に答える