我有我的數據庫如下表按日期和初級加入查詢
有幾個項目狀態(等待,工作,完成支付)和一個項目必須通過所有從等待到付款的狀態。
爲了保證項目的完整軌跡,每個狀態保持,所以我們知道當一個項目改變了它的地位。
我想創建一個搜索過濾器與當前狀態(具有更近「created_at」)。
我試過幾次查詢,以獲得正確的結果,但我堅持這一個。
的不工作的查詢我是
select p.* from projects p
left join projects_status_projects psp on psp.project_id = p.id
where p.id in (select project_id from projects_status_projects
where project_status_id = XX group by project_id order by created_at desc)
OFC,此查詢不工作,並與project_status_id XX記錄返回我的每個項目,沒有考慮帳戶的順序。
任何暗示將是非常讚賞!
感謝,
本傑明
這並不需要有一個單獨的連接表( projects_status_projects),因爲每個項目狀態將只屬於一個項目(如果我已經正確地閱讀了這個問題)。 project_statuses表應該只有一個project_id列。這將使您的查詢更易於管理。 – Slicedpan
@Slicedpan,也許我的問題沒有得到正確的刪節,但project_statuses表包含「狀態標籤」,如「支付,等待等等」(這使我們能夠增加新的狀態和避免常量)。 所以連接表需要 – bmichotte