溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

group by 查找訂單的最新狀態 join

發布時間:2020-06-05 06:29:22 來源:網絡 閱讀:1046 作者:努力的C 欄目:MySQL數據庫

Order:sn
Procedures:sn,status
1、 有訂單表和流程表。
訂單表含有訂單的詳細信息【假設沒有訂單狀態哈】,每個訂單有好多種狀態:已付款、處理中、待收貨等等?,F在的需求可能是查詢訂單狀態是待收貨的所有訂單的信息。
【答】先找到最新狀態是待收貨的所有訂單,然后和訂單表做一個left join,就可以得到了。
一、 先找最新狀態是待收貨的所有訂單。
本來拍腦袋一想是group by order by 取第一條,然后試了一下,發現group by取回來的并不是最新狀態的,而是分組后的第一條。這是因為在MySQL中語句的執行順序是先執行group by 然后執行order by .很明顯這就不可能得到最新的一條了。我們可以這樣查出每個訂單的最新狀態
select sn,max(status) from procedures group by sn .
正確的是下面的寫法,自己和自己做個join,最后再和order join。
SELECT a.id, a.sn, a.created_at,a.type FROM (SELECT sn, max(created_at) created_at FROM procedures GROUP BY sn ) b JOIN procedures a ON a.sn = b.sn AND a.created_at = b.created_at where a.type=11

select c.*,tmp.type from complaints as c right join (
SELECT a.id, a.sn, a.created_at,a.type FROM (SELECT sn, max(created_at) created_at FROM procedures GROUP BY sn ) b JOIN procedures a ON a.sn = b.sn AND a.created_at = b.created_at where a.type=11
) as tmp on tmp.sn=c.sn

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女