2014-09-01 50 views
0

所以我有2個表既包含的IDSQL:已從每位藝術家購買WORK的客戶2個表

工作:

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中購買了工作ID的客戶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

嗯,我想你應該你正在使用的數據庫的決定。這是標記爲三個數據庫,但我敢打賭,你只使用一個。 – 2014-09-01 12:30:17

+0

已標記爲3?不知道這是怎麼發生的。是的,它是1個數據庫。 – user2926952 2014-09-01 12:32:56

+0

好吧,我看到我做了什麼壞事,Oracle-sqldeveloper。 – user2926952 2014-09-01 12:33:39

回答

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 
相關問題