를 그냥 하나 개의 쿼리를 수행
SELECT items.id,
items.pr1,
items.pr2,
COUNT(*) AS comment_count
FROM items
INNER JOIN comments
ON items.id = comments.item_id
GROUP BY items.id,
items.pr1,
items.pr2
편집 :
모든 그룹을 해제 열이 그룹화 된 하나의 functionnally 의존하는 경우가 나타납니다 당신이 할 수있는 경우에만이 열을 기준으로 그룹 (야쉬 그랬던 것처럼) :
SELECT items.id,
items.pr1,
items.pr2,
COUNT(*) AS comment_count
FROM items
INNER JOIN comments
ON items.id = comments.item_id
GROUP BY items.id
참조 :
편집 2 :
두 번째 테이블을 추가하는 방법에 대한 (의이 tags
보자) :
그냥 *
에 보내고 COUNT
에 갈 수 없다.
SELECT items.id,
items.pr1,
items.pr2,
COUNT(DISTINCT comments.*) AS comment_count,
COUNT(DISTINCT tags.*) AS tags_count
FROM items
INNER JOIN comments
ON items.id = comments.item_id
INNER JOIN tags
ON items.id = tags.item_id
GROUP BY items.id,
items.pr1,
items.pr2
한 번만 comments
에 DISTINCT
, 당신은거야 COUNT
각 행을 사용하여, 그리고 tags
와 같은 : 그보십시오.
당신은 무엇을 시도 했습니까? –
먼저 group_id를 사용하여 item_id, count (주석)를 갖는 주석으로 테이블을 만들 수 있습니다. 그런 다음 해당 테이블을 항목 테이블과 조인 할 수 있습니다. 그러나 더 좋은 방법이 있는지 궁금합니다. – hovo
테이블을 만들지 말고 두 테이블을 모두 조인하고 그룹화하십시오. –