我需要從下表中獲取具有相同列值的行,我嘗試了以下方法,但它只給出了單行。MySQL選擇具有相同列值的行
select *
from employee e
group by e.empsalary
having count(e.empsalary) > 1
表員工
請給我建議的方法。
我需要從下表中獲取具有相同列值的行,我嘗試了以下方法,但它只給出了單行。MySQL選擇具有相同列值的行
select *
from employee e
group by e.empsalary
having count(e.empsalary) > 1
表員工
請給我建議的方法。
您應該能夠通過加入表本身來實現:
SELECT
a.*
FROM
employee a
JOIN employee b
ON a.empsalary = b.empsalary
AND a.empid != b.empid
演示爲你 - http://sqlfiddle.com/#!2/d75d9/1 – Phil
最後!這是幾個世紀以來一直在尋找的東西!謝謝:D –
使用一個內連接來加入你的查詢發佈。
select A.* from employee A
inner join (
select empsalary
from employee
group by empsalary
having count(*) > 1
) B ON A.empsalary = B.empsalary
演示爲你 - http://sqlfiddle.com/#!2/d75d9/5 – Phil
像這樣的事情也許
SELECT * FROM employee a
WHERE EXISTS (
SELECT 1 FROM employee b
WHERE a.empsalary = b.empsalary
AND a.empid <> b.empid
);
演示 - 只要你想http://sqlfiddle.com/#!2/d75d9/4
select * from employee where empsalary IN(select empsalary from employee group by empsalary having count(empsalary) > 1)
嘗試This.It給2行。
'選擇empsalary'並把它嵌套查詢裏面像'WHERE empsalary IN(SELECT ... empsalary)' – zerkms
您可以使用自連接。 –