2015-10-19 5 views
-1

У меня есть таблица, в которой люди могут отправлять комментарии:Комментарий Ответ MySQL

CREATE TABLE IF NOT EXISTS `comments` (
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `user` int(11) UNSIGNED NOT NULL, 
    `reference` int(11), 
    `data` datetime NOT NULL, 
    `ip` varchar(20), 
    `answer` int(11) 
    PRIMARY KEY (`id`) 
) 

если этот комментарий является ответом на другой комментарий answer имеет свой идентификатор. я это выбор:

select id, user, data, ip, answer from comments where reference = ? and answer = 0 

, так что я могу получить все комментировать ссылочной ид и пропустить его, если он является ответом.

Проблема в том, что если у одного из комментариев есть ответы, как я могу выбрать ответы в своих комментариях в этом выборе? например:

comment 1 
answer comment 1 (1) 
answer comment 1 (2) 
comment 2 
comment 3 
comment 4 
answer comment 4 (1) 
answer comment 4 (2) 
comment 5 
... 

ответ

0

Я думаю, вы могли бы

SELECT q.id as question_id , q.user as question_user, 
     q.data as question_data, q.ip as question_ip, 
     a.id as answer_id , q.user as answer_user, 
     a.data as answer_data, a.ip as answer_ip 

FROM comments q LEFT JOIN comments a on q.id=a.answer 

WHERE q.reference = ? 

Тогда в PHP вы можете перебрать результаты и собрать массив Accoding для ваших нужд.

+1

спасибо друг! Я попробую! –