2014-03-04 3 views
4

다음 표에서 동일한 열 값을 갖는 행을 가져와야합니다. 다음과 같은 방법으로 시도했지만, 하나의 행만 제공합니다.MySQL 동일한 열 값을 가진 행을 선택하십시오.

select * 
from employee e 
group by e.empsalary 
having count(e.empsalary) > 1 

표 직원은

enter image description here

나에게 방법을 제안 해주십시오.

+0

'empsalary'을 선택하고 가입 'WHERE empsalary IN (SELECT empsalary ...)' – zerkms

+0

사용할 수 SELF 같은 중첩 된 쿼리 안에 넣어. –

답변

8

당신은 자신에게 표를 가입하여이 작업을 수행 할 수 있어야한다 :

SELECT 
    a.* 
FROM 
    employee a 
    JOIN employee b 
     ON a.empsalary = b.empsalary 
     AND a.empid != b.empid 
+0

데모 - http://sqlfiddle.com/#!2/d75d9/1 – Phil

+0

마지막으로! 이것은 ive가 수세기 동안 찾고 있었던 것입니다! 감사합니다 : D –

3

은 내부가 쿼리에 게시하여 가입 가입하십시오. 이 아마도

SELECT * FROM employee a 
WHERE EXISTS (
    SELECT 1 FROM employee b 
    WHERE a.empsalary = b.empsalary 
    AND a.empid <> b.empid 
); 

데모 같은

select A.* from employee A 
inner join (
    select empsalary 
    from employee 
    group by empsalary 
    having count(*) > 1 
) B ON A.empsalary = B.empsalary 
+0

데모 - http://sqlfiddle.com/#!2/d75d9/5 – Phil

2
select * from employee where empsalary IN(select empsalary from employee group by empsalary having count(empsalary) > 1) 

이 This.It 시도는 2 개 행을 제공합니다.

데모 : http://sqlfiddle.com/#!2/d75d9/6

관련 문제