![](/img/trans.png)
[英]MySQL Selecting multiple rows with the same joining ID from the same table
[英]Updating and Selecting from the same table in MySQL
看看我的 sqlfiddle:
http://sqlfiddle.com/#!9/60ffc4 (已編輯)
我試圖執行的代碼:
UPDATE inventory SET
product_name = CONCAT((SELECT name FROM products_and_packaging
WHERE product_id = (SELECT product_id FROM inventory
WHERE inventory_id = 196)), ' 100g Bunch')
WHERE inventory_id = 196
我正在尋找的結果是將庫存表中的product_name
從 NULL 重命名為“Flowers 100g Bunch”,其中 product_id = 196。
我收到 #1093 錯誤(您不能在 FROM 子句中指定目標表 'inventory' 進行更新)
請注意這里有類似問題的答案: 您不能在 FROM 子句中指定要更新的目標表
MySQL 錯誤 1093 - 無法在 FROM 子句中指定要更新的目標表
但是,由於建議的內部連接,我嘗試應用這些解決方案並提出完全相同的錯誤。 任何朝着正確方向的指針都會很棒。
您不需要嵌套子查詢。 只需連接兩個表,如鏈接的問題所示。
UPDATE inventory AS i
JOIN products_and_packaging AS pp ON pp.product_id = i.product_id
SET i.product_name = CONCAT(pp.name, ' 100g Bunch')
WHERE i.inventory_id = 196
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.