Сложная выборка из базы

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Сложная выборка из базы

Нужно сделать сложную выборку из базы мускула (для форума)

Такая страница форума должна выводиться

вопрос1
ответ1
ответ2
ответ3
---------
вопрос2
ответ1
ответ2
ответ3
ответ4
ответ5
ответ6

В базе есть такие ключевые поля как id, msg_id

Если msg_id=0, то строка в таблице считается вопросом, а если значение msg_id не равно 0, єто считается ответом на вопрос.

Когда юзер постит на форум "вопрос" то msg_id=0, если он отвечает на вопрос, то msg_id приравнивается id "вопроса".

вопрос1 id=1 msg_id=0
ответ1 msg_id=1
ответ2 msg_id=1
ответ3 msg_id=1
---------
вопрос2 id=3 msg_id=0
ответ1 msg_id=3
ответ2 msg_id=3
ответ3 msg_id=3
ответ4 msg_id=3
ответ5 msg_id=3
ответ6 msg_id=3
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
надеюсь в єтом кто-то что-то поймёт
 

RomikChef

Guest
вообще-то, я таких форумов не видал - чтобы и вопросы и ответы выводились сразу.

select * from table order by if(msg_id>0,msg_id,id),id
 

SeazoN

Guest
SELECT * FROM table WHERE id=1 OR msg_id=1 ORDER BY id,msg_id

Конечно не совсем то, но по темам...
 

RomikChef

Guest
Сезон, и что ты этим хотел сказать?
игде здесь темЫ?
 

SeazoN

Guest
темы = вопросы
Просто не совсем логично выводить всё одним потоком, да ктому же сразу и ответы. Т.е. лучше классика - список вопросов(тем) и ссылка по id. Конечно это опять же каждому-своё.
PS SeazoN ~ ['si:zn] ;)
 

RomikChef

Guest
в этом случае, указывать msg_id в ордер бай - бессмысленно.
Да и без комментария этот запрос слабо похож на понятный ответ.
 
Сверху