我无法为此问题生成查询。
我有这张小桌子
Tasks(employee_name, task)
Sample Data:
Tasks
------------------
Joe | taskA
Joe | taskB
Ted | taskA
Jim | taskB
Ray | taskA
Ray | taskB
John| taskA
Tim | taskC
我需要找到所有具有完全相同任务的员工。
例如,使用结果集上面的数据应为:
---------------------
employee1 | employee2
---------------------
Joe | Ray
Ted | John
我正在使用mySQL作为数据库。 谢谢!
答案 0 :(得分:4)
select a.employee_name,b.employee_name
from tasks as a, tasks as b
where a.employee_name>b.employee_name
group by a.employee_name,b.employee_name
having group_concat(distinct a.task order by a.task)=group_concat(distinct b.task order by b.task)
答案 1 :(得分:0)
将表连接到自身,选择一个employee_name大于另一个,以及任务相等的位置。
select emp1.employee_name, emp2.employee_name, emp1.task
from tasks emp1
inner join task emp2
on emp1.employee_name > emp2.employee_name
and emp1.task = emp2.task
希望你有一个真正的PK,或者这只是一个示例练习。这在生产环境中并不好,因为employee_name不会在大多数公司/系统中唯一地标识员工。