我正在尝试追踪桌子上发生的所有变化

我试过这个查询

Update Stocks
Set stockOut = 100
,TrackDate = '1/30/2016'
 ,stockOnHand = stockOnHand - 400
 WHERE itemID = '4589-S';


还有这两个。

    Update Stocks
Set stockOut = 200
,TrackDate = '2/30/2016'
 ,stockOnHand = stockOnHand - 400
 WHERE itemID = '4589-S';


现在我用这个查询

SELECT
[ItemID]
      ,[ProdID]
      ,[stockOnHand]
      ,[stockIn]
      ,[stockOut]
      ,[TrackDate]
 from Stocks
where TrackDate between '1/30/2016' and '5/30/2016'


跟踪特定范围内的变化
日期。但是我只得到1个结果

我期待得到2个结果,因为我在两个不同的日期更新了此表。

最佳答案

您需要两个表,

库存和库存_历史

插入/更新股票时,还应该在STOCK_HISTORY表中创建一个新记录。该表的列应类似于ID,STOCK_ID,ACTION(创建,更新,删除)和TIMESTAMP。

这样,您在STOCK表中就不会有无用的信息,并且每当要列出库存的所有更改时,您都可以执行以下操作:



SELECT * FROM stocks s
  JOIN stock_history sh ON sh.stockId = s.id
  WHERE s.id = $stockId

关于mysql - 如何使用select获取多行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37527043/

10-09 20:10