MySQL數據庫包含城鎮內的國家,城鎮和地區,全部在「郵件」表中。我想按照粒度降序,使用和內連接的順序返回整個集合。我其實想要給用戶一個下拉列表,讓他們選擇一個城鎮內的國家或城鎮或地區。MySQL內部連接從同一個表中排序父,子和大孩子
的數據是這樣的:
mailshot_id mailshot_parent mailshot_name mailshot_level 49 0 England 0 56 0 Scotland 0 140 49 London 1 149 49 York 1 191 56 Glasgow 1 300 140 Wimbledon 2 310 140 Westminster 2 493 56 Edinburgh 1
,我希望它這樣的輸出:
mailshot_id mailshot_parent mailshot_name mailshot_level 49 0 England 0 149 49 York 1 140 49 London 1 300 140 Wimbledon 2 310 140 Westminster 2 56 0 Scotland 0 191 56 Glasgow 1 493 56 Edinburgh 1
我幾乎與此得到它:
SELECT p.mailshot_id as p_id, p.mailshot_name as p_name, p.mailshot_level as p_level, p.mailshot_parent as p_parent, c.mailshot_id as c_id, c.mailshot_parent as c_parent, c.mailshot_level as c_level, c.mailshot_name as c_name, case WHEN p.mailshot_parent = 0 THEN p.mailshot_id ELSE p.mailshot_parent END AS calcOrder FROM mailshot p LEFT JOIN mailshot c ON p.mailshot_id = c.mailshot_parent ORDER BY calcOrder , p_id "
但它的沒有將孫子人記錄(第2級)與兒童記錄(第1級)分組在一起(我認爲「案例」部分必須是錯的,我需要t o根據級別,mailshot_id和parent_id之間有一些關係。但我想不出來。
有什麼建議嗎?提前致謝。
我不看你怎麼想的順序,看上去一點y中有序我們希望的結果。你可以解釋嗎 ? –
你可以給你的表的示例數據,或者如果你想要一個小提琴示例 –
請*,因爲* echo_Me *建議,你可以創建一個http://sqlfiddle.com與您的表和數據樣本,以便做一些實驗。 –