簡體   English   中英

錯誤 #1242 子查詢返回多於 1 行

[英]Error #1242 Subquery returns more than 1 row

UPDATE tbl_products
SET Stocks = (Select Stocks 
              WHERE Product_ID IN (3,4,6)) - (SELECT Quantity 
                                              FROM tbl_transactions 
                                              WHERE Product_ID IN (3,4,6) 
                                                AND Date_Time BETWEEN '2020-09-20' AND '2020-09-22');

#1242 - 子查詢返回超過 1 行

我的問題是,我怎樣才能讓“股票”接受多行,或者甚至可能嗎? 除了這個還有其他解決辦法嗎? 我已經運行了子查詢,它返回了 3 行,我需要“Stocks”接受這 3 行,這樣它就會從我的第一個表中減去這些值。

SET 股票只能取一個值。 您的子查詢返回不止一個。 確保它只能返回一個值。 單獨運行子查詢以確認。

你應該只assing一個值的SET列。 例如

SET a = 'test', b = 'something'

但是,如果您想更新多行,則需要INSERT IGNORE或使用特定值更新所有表行,然后您只需要編寫適當的WHERE條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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