2011-04-22 4 views
0

내게는 긴 한 주 였고 내 두뇌는 엉망이었습니다.연락처에 속한 카테고리 수를 계산할 SQL 쿼리

  • contacts
  • contacts_categories
  • contacts_categories_join

다양한 종류가 있습니다, 연락처가 범주에 속하는 많은 종류, 또는 수 있습니다

나는 세 개의 테이블이있는 데이터베이스를 없음. contacts_categories_join의 구조는 다음과 같습니다.

id INT UNSIGNED PRIMARY_KEY AUTO_INCREMENT 
contact_id INT UNSIGNED 
category_id INT 

아주 간단합니다.

나는 ID가 주어지면 연락처가 속한 범주의 수를 세는 방법입니다.

편집 : 나는 이러한 종류의 category_id 컬럼에 COUNT를 사용하여 GROUP BY 문으로 거기에 도착하지만, 불행히도이 제로 범주에 할당 된 연락처의 ID를 반환하지 않습니다.

답변

4
SELECT COUNT(*) 
    FROM contacts_categories_join 
WHERE contact_id = ID 

여기에서 ID은 주어진 ID입니다.

당신이 (하지만 당신의 질문에서 명확하지 않다), 모든 연락처를 문의하는 경우 :

SELECT c.id, 
      COUNT(j.contact_id) 
    FROM contacts c 
LEFT JOIN contacts_categories_join j ON j.contact_id = c.id 
GROUP BY c.id 

(당신의 contact 테이블을 가정 할 것은 id 필드가)

+0

네, 죄송합니다. 나는 모든 접촉의 수를 원했다. 그러나이 쿼리는 내가 필요로하는 것을 수행합니다. 감사합니다! –

관련 문제