簡體   English   中英

從 MySQL 中的同一個表中更新和選擇

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM