2012-09-18 5 views
3

나는 전에 내가 해왔 던 것이고, 아마도 단순한 무언가에 거대한 공백을 그렸습니다. 아아아, 어쨌든 도움을 요청할 것입니다. tbl_admins_groups tbl_admins2 테이블의 MySQL 카운트

나는 단지 관리자 그룹의 테이블에 쿼리를 당기는 해요 : :

나는 2 개 테이블이 지금 tbl_admins_groups

으로부터

SELECT 그룹 ID, 그룹 이름, groupdesc를 I 해당 groupid와 연관된 admin 레코드의 수를 세는 다른 컬럼을 추가하려고합니다. 나는 다시 한 결과를 얻고 몇 가지 이유를 들어

SELECT g.groupid, g.groupname, g.groupdesc, COUNT(a.adminid) AS `admincount` 
FROM `tbl_admins_groups` g, `tbl_admins` a 
WHERE g.groupid = a.groupid 
AND a.adminstatus = 1 
GROUP BY g.groupid 

:

여기 내 시도입니다. 내 GROUP BY가 잘못 되었습니까?

+0

합니까'로 가입 할 수 있습니까? 그렇지 않은 경우 왼쪽 결합을 사용해야 할 수도 있습니다. –

+0

예, tbl_admins의 각 행에 groupid가 할당되어 있습니다. – coffeemonitor

답변

4

당신은 하위 쿼리 안에 자신의 COUNT를 얻을`tbl_admins_groups`의 모든 그룹에 대한 행을 포함 tbl_admins` tbl_admins_groups

SELECT g.groupid, g.groupname, g.groupdesc, 
     a.totalCount 
FROM tbl_admins_groups g 
     LEFT JOIN 
     (
      SELECT groupid, COUNT(*) totalCount 
      FROM tbl_admins 
      WHERE adminstatus = 1 
      GROUP BY groupid 
     ) a 
      ON g.groupid = a.groupid