SELECT DISTINCT E.empno, E.ename,E.sal,E1.empno,E1.ename,E1.sal
FROM Emp E , Emp E1 WHERE E1.sal = E.sal AND
E.empno <> E1.empno
Group by E.empno,E.ename,E.sal,E1.empno,E1.ename,E1.sal;
即使我使用DISTINCT,我仍然有类似的东西
empno ename sal empno ename sal
1 a 123 2 b 123
2 b 123 1 a 123
我只想展示一次......
答案 0 :(得分:1)
首先,使用正确的,明确的JOIN
语法。
其次,解决方案只是使用<
:
SELECT E.empno, E.ename, E.sal, E1.empno, E1.ename, E1.sal
FROM Emp E JOIN
Emp E1
ON E1.sal = E.sal AND E.empno < E1.empno ;
您可能会发现在一行中获取名称和ID更容易,如:
select e.sal, group_concat(e.empno order by e.empno) as empnos,
group_concat(e.ename order by e.empno) as empnames
from emp e
group by e.sal
having count(*) > 1;