I have a database table which stores ids of employees and their previous projects they have been working on. Now I want to retrieve pairs of employees that have been working on the same projects and amount of common projects between these two employees. If I do "self-join" approach then I get duplicate rows.
SELECT DISTINCT ep1.employee_id, ep2.employee_id, COUNT(p.id)
FROM employee_project ep1, employee_project ep2, project p
WHERE ep1.project_id=ep2.project_id
AND ep1.employee_id ep2.employee_id
AND p.id=ep1.project_id
GROUP BY ep1.employee_id, ep2.employee_id, p.id
Result:
employee1 | employee2 | 5
employee2 | employee1 | 5