[英]Mysql update with subquery join
我有更新查詢:
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表結構:
您的加盟條件似乎是錯誤的。在你的查詢您嘗試加入表articles_pricehistory
和cash_billings_bills
條件
cash_billings_bills_articles.cashbillingbill_id = cash_billings_bills.cashbillingbill_id
其中cash_billings_bills.cashbillingbill_id
列應該用一些列作比較articles_pricehistory
表不cash_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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.