2011-06-02 60 views
1

我的SQL有問題。我有一個表(稱爲「地區」)看起來像這樣:SQL - 按子字段重組

SQL table : Regions

我想要做的是排序此表與sub_region「下一步」的區域是什麼。在這個例子中,魁北克省(9)和安大略省(10)是加拿大的子地區(7),所以我想在加拿大之後立即獲得它們。我不知道它是愚蠢的還是我的SQL過於生疏,但我找不到這樣做的方式....順便說一句,將使用此數據庫的網站是CakePHP,如果可以的話幫助!(行爲或其他內置模塊,我不知道)。

回答

2
select s.id, s.name, r.* 
from Regions r 
left join Regions s 
on s.id = r.sub_region 
order by(coalesce(s.id, r.id), r.id) 

編輯:我修改了連接查詢,我還沒有嘗試過,但你會給一個鏡頭,我認爲語法應爲MySQL

+0

它幾乎攜手!但我仍然無法在加拿大之後拿到魁北克和安大略省的任何訂單... – 2011-06-02 17:39:45

+0

@帕特里克 - 哦,我誤以爲你想要什麼 – Brett 2011-06-02 17:52:16

+0

對!我得到的唯一問題是加拿大之前和之後的2省排序....但添加r.name按工作排序。謝謝!我的問題和我一樣困惑,所以這是正常的,你乍一看不明白;) – 2011-06-02 18:04:01