如何DISTINCT多表查询

时间:2017-10-18 13:53:21

标签: mysql sql

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

我只想展示一次......

1 个答案:

答案 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;