2009-08-25 2 views
0

하여 그룹을 사용하여 쿼리를 가입MySQL은 ... 내가 반환하는 쿼리를 작성하려고 해요

  1. accesslog 테이블의 각 고유 한 사용자 ID입니다.

  2. 각 사용자 ID가 액세스 할 수있는 IP 주소의 수는 액세스 로그 테이블에서도 동일합니다.

  3. 사용자 테이블의 해당 사용자 아이디, 전자 메일 주소 및 회사 이름입니다.

1과 2가 있지만 3을 얻는 방법을 잘 모르겠습니다. :(

다음

내가 지금 가지고있는 쿼리의 :

SELECT DISTINCT userid, COUNT(ipaddress) AS c FROM accesslog WHERE url LIKE 'www.example.com%' and userid != '' GROUP BY userid ORDER BY c desc 

어떻게 것 I 나는 당신이 필요합니다

+0

아 이러다 @ 피 ... 그냥 내 사용자 테이블과 accesslog 테이블이 다른 데이터베이스에, 나는 우리에는 mysql 루트에 액세스 할 수없는 것을 기억 어. 그래서 결국이 쿼리를 할 수 없습니다. : – Ian

답변

4

users 테이블에 가입하고 모든 추가 할 데이터의 다른 조각 JOIN?가 GROUP BY과의 열 :

SELECT a.userid, u.name, u.email, u.company, COUNT(a.ipaddress) AS c 
    FROM accesslog a, USERS u 
WHERE a.userid = u.userid 
    AND a.url LIKE 'www.example.com%' 
    AND a.userid != '' 
GROUP BY a.userid 
ORDER BY c desc 
+1

'DISTINCT'를 '그룹 기준'으로 처리해야한다고 생각하지 않습니다. – BoltBait

+0

답변 해 주셔서 감사합니다. – Ian

+0

@BoltBait - 당신 말이 맞아요, 방금 이안의 쿼리를 복사/편집하고 그것을 삭제하는 것을 잊었습니다. 편집 할 것입니다. – ChssPly76

관련 문제