2014-09-01 5 views
0

그래서 난 둘 다 ID를SQL : 모든 아티스트로부터 WORK를 구입 한 고객 || 이 개 테이블

를 포함하는 두 테이블이

일 :

workID, artistID 
1  6 
2  7 
3  8 
4  6 
5  6 

트랜스 :

CustomerID, workID 
10   1 
11   2 
12   3 
10   4 
10   5 

지금까지 나는 단지 모든 ID의 함께 넣어 관리했습니다하지만, 모든 아티스트 ID에서 workID를 구입 한 고객 ID를 표시해야합니다. 결과 :

SELECT 
    trans.customerID, trans.workID, work.artistID 
FROM 
    trans 
     INNER JOIN work 
     ON trans.workID=work.workID 
WHERE 
    trans.customerID IS NOT null 
ORDER BY 
    trans.customerID; 

기본적으로 누군가가 올바른 방향으로 나를 가리키거나 훌륭한 솔루션을 설명 할 수 있다면 내 다음 단계가 무엇인지 잘 모릅니다.

편집 : 테이블

이것은 당신이 가야한다
+1

흠, 난 당신이 사용중인 데이터베이스를 결정한다고 생각합니다. 이 데이터베이스에는 세 개의 데이터베이스에 태그가 지정되어 있지만 하나만 사용하고 있습니다. –

+0

에 3 개의 태그가 있습니까? 어떻게 된 일인지 모르겠다. 예, 1 데이터베이스입니다. – user2926952

+0

오케이 예, 저의 오라클 - sqldeveloper를 보았습니다. – user2926952

답변

0

에 추가 단순화 된 데이터 :

SELECT t.customerId 
FROM 
    (SELECT t.CustomerId, COUNT(DISTINCT artistId) as artists 
    FROM trans t INNER JOIN work w ON w.workid = t.workid) t 
    INNER JOIN 
    (SELECT COUNT(DISTINCT artistId) artists FROM work) a ON t.artists = a.artists