2017-04-05 2 views
0

직원 및 작업이 포함 된 테이블이 있는데 누락 된 직원/작업 조합 목록이 필요합니다.MySQL 누락 된 값을 선택하는 방법

Bob Gardening 
Bob Watering 
Jane Gardening 
Jane Digging 

Bob Digging 
Jane Watering 

어떤 제안을 얻을 것 때문에 선택? 감사합니다

+0

아마도 직원, 작업 및 언급 된 employee_task 테이블이 3 가지일까요? 어떻게 연결되어 있습니까? ID 또는 문자열 (예 : 'Bob'및 'Gardening')? –

+0

그것은 하나의 테이블입니다 - 직원과 활동이 수행 된 횟수를 나열하는 다른 테이블에서 작성된 요약 테이블입니다. – user3466409

답변

0

크로스 조인은 직원과 작업의 모든 가능한 조합을 만듭니다. NOT IN하면 세트에서 기존의 모든 직원/직업 조합을 뺄 수 있습니다 : 당신은 하나 개의 하위 쿼리 모든 직원과 한 번 더 하위 쿼리 등의 모든 작업을 한 후 십자가에 가입 할 필요가

select e.employee, t.task 
from employees e 
cross join task t 
where (e.employee, t.task) not in 
(
    select employee, task 
    from employees_tasks 
); 
+0

감사합니다 - 쓰기 경로에 나를 설정 - 내가 select * from (직원 선택 테이블에서 다른 직원을 선택하십시오.) cross join (테이블에서 다른 작업 선택) b) as c where (c.employee , c.task) (테이블에서 employee, task 선택); – user3466409

0

. 그 일을 마치면 아래와 같이 조건을 부여하십시오.

Select * from (
select a.employee,b.task from 
(Select distinct employee from table) a, (select distinct task from table) b) where (employee,task) not in (select employee, task from table) 
관련 문제