Я хочу показать количество комментариев для каждого сообщения в блоге (наряду с категорией, датой, автором и т. Д.) На странице со списком сообщений в блоге. Как написать следующий запрос mysql в propel?Запрос Sql (внутреннее объединение + счет + группа) с использованием Propel
SELECT post.id, post.title, post.more_columns , COUNT(comments.post_id) AS numofcomments FROM post INNER JOIN comments ON post.id = comments.post_id GROUP BY post.id, post.title, post.more_columns
где пост таблицы и комментарии блога, таблица комментариев с POST_ID в качестве внешнего ключа для post.id. Кажется, я не могу получить «numofcomments» в качестве столбца в наборе результатов. В настоящее время я использую подход без ORM (который будет моим последним средством):
$con = Propel::getConnection(PostPeer::DATABASE_NAME);
$sql = "SELECT post.* , COUNT(comments.post_id) AS numcomments FROM post INNER JOIN comments ON post.id = comments.post_id GROUP BY post.id";
$stmt = $con->prepare($sql);
$stmt->execute();
$result = PostPeer::populateObjects($stmt);
return $result;
Как я могу получить доступ к «numofcomments» в результате Propel результирующем?
EDIT: Я хотел бы знать, как я могу написать вышеуказанный запрос в Propel? Теперь я могу получить стол столбец с внутренним соединением в таблице комментариев, а затем запустить doCount в таблице комментариев для каждого post-id. Это приводит к 1 запросу для таблицы Post и множеству запросов для таблицы комментариев. Я хочу свести запросы sql к минимуму. Спасибо :)
Благодаря @nos ...это был фундаментальный надзор с моей стороны в том, что я неправильно писал запрос по группе, но вопрос другой. Я его отредактировал ... вы можете проверить еще раз? :) – fenderplayer