2011-09-09 3 views
0

나는 두 테이블열에 의해 그룹화 된 다른 테이블의 수를 사용하여 테이블의 레코드를 주문하는 방법은 무엇입니까?

1. Class table 
2. notification table 

클래스 테이블 마찬가지로

classid | name 
1  myclass 
2  yourclass 
3  ourclass 

및 알림 테이블에 포함 된 클래스의 모든 세부 사항이 포함되어 있나요 CLASSID별로 그룹화 수를 얻을 것입니다 테이블 위

noty_id | notificationname | class_id 
    1   editing    1 
    2   insertion    1 
    3   answered    2 
    4   answered updated  2 
    5   deleted    3 

아래 주어진대로

SELECT class_id, COUNT(*) AS classcnts FROM notification GROUP BY class_id 

이제 클래스 테이블을 알림 테이블에서 가져온 count의 내림차순으로 표시하고 싶습니다. 두 쿼리를 결합하여 결과를 얻으려면 어떻게해야합니까? 사전에

감사

답변

2

이 시도 :

SELECT cl.classid, cl.name, COUNT(no.notificationname) AS classcnts 
FROM class cl LEFT JOIN notification no 
ON cl.classid = no.class_id 
GROUP BY cl.classid 
ORDER BY classcnts DESC 
+0

야 마르코 왜 우리가 여기 cl.classid하여 그룹화된다? "no.class_id :? –

+0

@OM The Eternity : no, 왜냐하면 LEFT JOIN을하고 있고 no.class_id가 null 일 수도 있기 때문입니다. (cl.classid가있는 알림 테이블에 항목이 없으면) – Marco

+0

그래서이 쿼리는 클래스 테이블의 클래스 세부 정보를 알림 테이블의 카운트를 내림차순으로 정렬 할 것입니까? –

관련 문제