Сложная проблема MySQL ORDER BY - PullRequest
1 голос
/ 10 ноября 2010

У меня есть следующая таблица:

id  title               parent_forum    depth
1   'Forum1'             0               0   
2   'Forum2'             0               0   
3   'Forum3'             0               0   
4   'Forum1 subforum'    1               0   
5   'Forum2 subForum'    2               0   
6   'Forum3 subForum'    3               0

Я хочу отсортировать строки так, чтобы все подфорумы были сгруппированы по родительским форумам.Итак, в качестве примера, я хотел бы, чтобы выходные данные были упорядочены следующим образом:

id  title               parent_forum    depth
1   'Forum1'             0               0
4   'Forum1 subforum'    1               0

2   'Forum2'             0               0  
5   'Forum2 subForum'    2               0
7   'Forum2 subForum2'   2               0

3   'Forum3'             0               0   
6   'Forum3 subForum'    3               0

(пробелы для лучшего понимания) Должен быть способ только с ORDER BY и GROUP BY?Если нет, может кто-нибудь предложить хороший запрос, чтобы помочь мне?

РЕДАКТИРОВАТЬ: Или моя структура базы данных просто отстой (я не показал все, но это то, что вы можете увидеть мусор?)

Большое спасибо,

Джеймс

1 Ответ

2 голосов
/ 10 ноября 2010

Я думаю, что это должно сработать:

ORDER BY IF(parent_forum = 0,id,parent_forum), parent_forum
...