我有以下MySQL查詢:複雜MySQL的加入
SELECT Project.*, `trk_deleted`, `trk_status`, `trk_state`
FROM `project` AS `Project` LEFT JOIN `trackline` ON `prj_id` = `trk_project`
WHERE `prj_deleted` = '0' GROUP BY `prj_id` ORDER BY `prj_name`;
這是一個有點難以解釋,但基本上,我在我的數據庫中的結構,其中項目有多個Tracklines。這兩個實體分別具有prj_deleted
和trk_deleted
的字段,如果它們被刪除(從視圖中隱藏),則它們可以具有1值,或者0值不被刪除(仍在視圖中)。
我的項目視圖頁面根據該項目中的軌跡線顯示每個項目的圖標。這些圖標是基於trk_status
值並顯示trk_state
我的項目視圖頁面應該只顯示項目1時,即使它有多個tracklines(因此GROUP BY prj_id
)
我的問題:
從上GROUP MySQL文檔BY:
「。此外,值從每個組選擇不能被插件的影響g ORDER BY子句。結果集的排序發生在選擇了值之後,並且ORDER BY不會影響服務器選擇的值。「
我的項目視圖頁面應該理想地顯示未被刪除的軌跡線的圖標。所以,我希望我可以在GROUP BY之前ORDER BY trk_deleted
發生,這樣的分組是與不是刪除的trackline完成。
希望有人能明白我試圖讓在這裏。
如果一個項目可以有多個當前'trk_status'和'trk_state',這是一個數據完整性問題,數據中可能存在異常。每個項目是否只有一條「trackline」(其餘部分保存用於存儲目的)?一個項目有兩條軌跡線和兩個「trk_status」是否有效意味着什麼? –