У меня есть три таблицы:получить общие строки из одной таблицы с любым столбцом
CREATE TABLE workflow_roles (
role_id NUMBER PRIMARY KEY,
role_desc VARCHAR2(20)
);
CREATE TABLE tbl_workflow (
workflow_id VARCHAR2(5) PRIMARY KEY,
workflow_desc VARCHAR2(20)
);
CREATE TABLE workflow_detail (
role_id NUMBER REFERENCES workflow_roles(role_id),
workflow_id VARCHAR2(5) REFERENCES tbl_workflow(workflow_id)
);
Пусть говорят данные:
INSERT INTO workflow_roles
SELECT 1, 'Role 1' FROM DUAL UNION ALL
SELECT 2, 'Role 2' FROM DUAL;
INSERT INTO tbl_workflow
SELECT 'A', 'Work A' FROM DUAL UNION ALL
SELECT 'B', 'Work B' FROM DUAL UNION ALL
SELECT 'C', 'Work C' FROM DUAL UNION ALL
SELECT 'D', 'Work D' FROM DUAL UNION ALL
INSERT INTO workflow_detail
SELECT 1, 'A' FROM DUAL UNION ALL
SELECT 1, 'B' FROM DUAL UNION ALL
SELECT 2, 'B' FROM DUAL UNION ALL
SELECT 2, 'C' FROM DUAL;
Роль «B» существует в оба рабочих процессах
Я хочу получить общие роли, которые существуют в выбранных рабочих процессах, т.е. он должен возвращать роль B только.
Я попытался следующие:
select * from workflow_roles where role_id in
(
select role_id from workflow_detail where workflow_id in (1,2)
);
Но она возвращается все роли, назначенные данной рабочие процессы.
Как я могу это сделать?
Пожалуйста ** [EDIT] ** ваш вопрос и добавить некоторые выборочные данные и ожидаемый результат на основе этих данных. [** Отформатированный текст **] (http://stackoverflow.com/help/formatting), пожалуйста, [скриншоты] (http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-when-ask-a-question/285557 # 285557) –