我有一张包含员工和任务的表,并且我想要一份缺失的员工/任务组合列表。MySQL如何选择缺失值
Bob Gardening
Bob Watering
Jane Gardening
Jane Digging
所以选择会产生
Bob Digging
Jane Watering
有什么建议?谢谢
我有一张包含员工和任务的表,并且我想要一份缺失的员工/任务组合列表。MySQL如何选择缺失值
Bob Gardening
Bob Watering
Jane Gardening
Jane Digging
所以选择会产生
Bob Digging
Jane Watering
有什么建议?谢谢
交叉连接创建员工和任务的所有可能的组合。随着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
);
谢谢 - 这使我在写路径 - 我使用select * from(选择雇员,任务从(选择不同的雇员从表)作为交叉连接(从表中选择不同的任务)作为b)作为c where(c.employee ,c.task)不在(选择员工,表中的任务); – user3466409
你需要采取所有员工一个子查询和所有任务作为一个子查询多,然后做交叉连接。一旦完成,给出如下所示的条件。
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)
有可能是三张表:雇员,任务和提到的employee_task表,正确吗?这些链接如何?按ID还是字符串(例如'Bob'和'Gardening')? –
它是一张表 - 它是从其他表中创建的汇总表,列出了员工和活动完成的次数。 – user3466409