2016-11-03 120 views
0

我有更新查询:与子查询Mysql的更新加入

UPDATE cash_billings_bills_articles 
    SET cash_billings_bills_articles.cashbillingbillarticle_cost = (SELECT articles_pricehistory.articlepricehistory_cost 
              FROM articles_pricehistory 
              LEFT JOIN cash_billings_bills 
               ON cash_billings_bills_articles.cashbillingbill_id = cash_billings_bills.cashbillingbill_id 
              WHERE articles_pricehistory.article_id = cash_billings_bills_articles.article_id AND 
               articles_pricehistory.articlepricehistory_date <= cash_billings_bills.cashbillingbill_date 
              ORDER BY articles_pricehistory.articlepricehistory_date DESC 
              LIMIT 1 
              ); 

但我得到的错误:Error Code: 1054. Unknown column 'cash_billings_bills_articles.cashbillingbill_id' in 'on clauseError Code: 1054. Unknown column 'cash_billings_bills_articles.cashbillingbill_id' in 'on clause' 0.000 sec

UPDATE表结构:

enter image description here

+0

显示你的表结构 –

+0

@KiranMuralee请刷新该网站查看更新 –

回答

0

您的加盟条件似乎是错误的。在您的查询中,您尝试加入表articles_pricehistory条件

cash_billings_bills_articles.cashbillingbill_id = cash_billings_bills.cashbillingbill_id 

cash_billings_bills d其中cash_billings_bills.cashbillingbill_id柱应与articles_pricehistorycash_billings_bills_articles的一些列进行比较。

您的查询应该更像

UPDATE cash_billings_bills_articles 
SET 
    cash_billings_bills_articles.cashbillingbillarticle_cost = (SELECT 
      articles_pricehistory.articlepricehistory_cost 
     FROM 
      articles_pricehistory 
       LEFT JOIN 
      cash_billings_bills_articles ON cash_billings_bills_articles.article_id = articles_pricehistory.article_id 
       LEFT JOIN 
      cash_billings_bills ON cash_billings_bills_articles.cashbillingbill_id = cash_billings_bills.cashbillingbill_id 
     WHERE 
      articles_pricehistory.articlepricehistory_date <= cash_billings_bills.cashbillingbill_date 
     ORDER BY articles_pricehistory.articlepricehistory_date DESC 
     LIMIT 1) 
+0

曾为!谢谢” –

+1

@JonathanEdgardo高兴知道:) –