来自同一个表的 MySQL 子 SELECT

psy*_*opz 5 mysql

就这个问题而言,这过于简单化了,但假设我有一个INVENTORY包含以下列的表:SKU, DATE, QUANTITYQUANTITY我想选择前一天的 小于QUANTITY任何一天的 的所有列。如何在同一个表上编写SELECT带有子项的查询?SELECT

或者,如果有人知道如何称呼这种查询,这样我就可以自己做更多研究,这会很有帮助。(即,这是递归查询吗?)

Bee*_*Guy 3

我认为这对你来说是一个好的开始(如果我正确理解你的模式)。
在英语中,这将选择昨天数量小于同一 SKU 前几天最低数量的所有 SKU。

SELECT 
    SKU, 
    Quantity

FROM 
    INVENTORY inv

WHERE
    inv.DATE = GETDATE() - 1
    AND inv.QUANTITY < (SELECT MIN(prev_inv.QUANTITY) 
                        FROM INVENTORY prev_inv
                        WHERE 
                            prev_inv.DATE < GETDATE() - 1 
                            AND prev_inv.SKU = inv.SKU
                       )
Run Code Online (Sandbox Code Playgroud)