블로그 게시물 목록이있는 페이지에서 각 블로그 게시물에 대한 의견 수 (범주, 날짜, 작성자 등)를 표시하려고합니다. 어떻게 propel에 다음 mysql 쿼리를 작성합니까?Propel을 사용하는 Sql 쿼리 (inner join + count + group by)
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'를 결과 집합의 열로 간주합니다.
$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'에 액세스 할 수 있습니다 : 현재 나는 (내 마지막 수단이 될 것이다) 비 ORM 접근 방식을 사용하고 있습니다?
EDIT : 제가 알고 싶은 것은 Propel에서 위의 쿼리를 작성하는 방법입니다. 내가 할 수있는 일은 주석 테이블에 내부 조인이있는 게시 테이블을 만든 다음 각 게시 ID에 대한 주석 테이블에서 doCount를 실행하는 것입니다. 이로 인해 Post 테이블에 대한 1 개의 쿼리와 주석 테이블에 대한 많은 쿼리가 생성됩니다. SQL 쿼리를 최소한으로 줄이고 싶습니다. 이 게시물을 선택하기 때문에 감사합니다 :) 등
감사 @nos ...이는 그룹 별 쿼리를 올바르게 작성하지 않았지만 내 질문에 대한 근본적인 감독 이었지만 문제는 다릅니다. 나는 그것을 편집했다 ... 다시 확인할 수 있니? :) – fenderplayer