2016-01-16 68 views
0

我有3個表:如何從表MYSQL獲取最後輸入的ID號

訂單經歷了多個狀態。所以每個狀態都可以在table_orderstatus中輸入。狀態日期將在那裏,但在此示例中未顯示。

示例

table_orders - orderid,ordervalue;

1- 500 
2- 1000 
3- 8000 
4- 10000 

table_orderstatus - orderid,statusid,statusdate; (orderid,statusid)

1- 1 
1- 2 
2- 1 
2- 3 
3- 1 
3- 3 
3- 4 
4- 1 
4- 3 
4- 4 
4- 5 
5- 1 

table_statusvalues - statusid,statusvalue;

1- NEW 
2- CANCEL 
3- CONFIRM 
4- DISPATCHED 
5- DELIVERED 

我想獲取所有訂單的order_id和最後一個狀態值(不是id)。

1- CANCEL 
2- CONFIRM 
3- DISPATCHED 
4- DELIVERED 
5- NEW 

我嘗試了多種方法來實現相同。但是cound't沒有得到預期的結果。誰可以幫我這個事?

回答

1

最後根據值:

0

試試這個

SELECT T.orderid, S.statusvalue 
FROM (
    SELECT O1.orderid, O2.statusid 
    FROM _orderstatus O1 
    WHERE O1.statusdate > (
     SELECT MAX(O2.statusdate) 
     FROM _orderstatus O2 
     WHERE O2.orderid = O1.orderid 
     AND O2.statusdate <> O1.statusdate 
    ) 
) T, _statusvalues S 
WHERE T.statusid = S.statusid 
相關問題