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
我只想展示一次...
最佳答案
首先,使用正确的显式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;
关于mysql - 如何区分多表查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46811854/