2013-11-20 3 views
0

사용자두 개의 테이블이 있습니다. 각 사용자는 0 개 이상의 앨범을 보유 할 수 있습니다.두 번째 테이블에서 최대 값 또는 합계를 기준으로 행 선택

사용자 : 아이디, ...

앨범 : 아이디, userId를이 계산 ...

테이블 링크 : <를 users.id -> albums.userId.

albums.count 필드는 앨범의 사진 수를 포함합니다.

나는 싶어 :

1) 대부분의 앨범을 가진 사용자입니다.

2) 대부분의 사진이있는 사용자가 앨범에 모두 합계됩니다.

어떻게받을 수 있습니까?

+1

당신이 뭔가를 시도? 오류가 발생 했습니까? 몇 가지 코드를 게시하십시오 ... –

답변

2

첫 번째의 경우, 사용할 수 있습니다

SELECT users.* 
     COUNT(albums.id) as albumNumber 
FROM users 
INNER JOIN albums ON users.id = albums.userId 
GROUP BY users.id 
ORDER BY albumNumber DESC 
LIMIT 0,1 

그리고 두 번째 하나를 :

SELECT users.* 
     SUM(albums.count) as photosNumber 
FROM users 
INNER JOIN albums ON users.id = albums.userId 
GROUP BY users.id 
ORDER BY photosNumber DESC 
LIMIT 0,1 
관련 문제