CREATE TABLE `comments` (
`comment_id` int(11) NOT NULL AUTO_INCREMENT,
`comment_parent_id` int(11) NOT NULL DEFAULT '0',
`user_id` int(11) NOT NULL DEFAULT '0',
`comment_text` varchar(200) NOT NULL DEFAULT '',
`comment_created` int(20) NOT NULL DEFAULT '0',
`comment_updated` int(20) NOT NULL DEFAULT '0',
`comment_replies_count` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`comment_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
Каждый комментарий может иметь несколько ответов, однако на них нельзя отвечать. Поэтому, когда кто-то отвечает на комментарий, в строке, которую он вставляет, будет идентификатор комментария, на который он ответил, в столбце родительского идентификатора.
Я хотел бы получить все комментарии, и если на комментарий есть ответы, я хотел бы получить последний ответ.
SELECT c1.*
FROM comments c1
WHERE comment_parent_id = '0'
ORDER BY comment_created DESC;
So if c1.comment_replies_count > 0 I would like to...
SELECT c2.*
FROM comments c2
WHERE comment_parent_id = c1.comment_id
ORDER BY comment_created DESC Limit 1;
Может ли это быть достигнуто в 1 запросе? Или лучше сделать еще один вызов в базу данных во время оператора цикла php, чтобы получить последний ответ на комментарий?
Заранее спасибо и прошу прощения за мое невежество, поскольку я все еще учусь.