2014-09-01 2 views
0

Поэтому у меня есть 2 таблицы, что оба содержат идентификаторыSQL: ЗАКАЗЧИК, который купил РАБОТУ от каждого ARTIST || 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 

До сих пор я только успел поставить все идентификаторы вместе, но В результате мне нужно показать любой идентификатор клиента, который приобрел идентификатор workID из каждого идентификатора artistID:

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; 

В принципе, я понятия не имею, каким должен быть мой следующий шаг, если кто-нибудь может указать мне в правильном направлении или объяснить решение, которое было бы здорово.

EDIT: добавлены упрощенные данные в таблицах

+1

Ммм, я думаю, вы должны решить, в базе данных, которую вы используете. Это помечено для трех баз данных, но я уверен, вы используете только один. –

+0

с тегом для 3? не знаю, как это произошло. Да, это 1 база данных. – user2926952

+0

Хорошо, да, я видел, что сделал свой плохой, Oracle-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