选择所有薪水相同的人

use*_*006 4 sql select equals

我在寻找SQL查询解决方案时遇到问题。这可能是一个非常明显的初学者问题,但我似乎无法获得想要的结果。我有一张表,看起来像以下内容:

|Name |Station|Salary|
|Bob  |1      |2000  |
|Steve|2      |1750  |
|Mark |3      |2050  |
|Lisa |4      |2200  |
|Hans |5      |2000  |
Run Code Online (Sandbox Code Playgroud)

我想在此表中选择薪水相同的人员。结果当然应该是鲍勃汉斯

yda*_*coR 6

如果您在薪水表​​上加入自己的表,但姓名分开,那么这应该给您匹配的薪水人员:

SELECT s1.Name, s1.Station, s1.Salary
FROM Staff s1
INNER JOIN Staff s2 ON s1.Salary = s2.Salary AND s1.Name <> s2.Name
Run Code Online (Sandbox Code Playgroud)

这是一个SQLFiddle来展示它的作用

  • 这是自我加入的方式。@StuartLC的答案就像一台只能在MySql上运行的Rube Goldberg机器。:P (2认同)

qxg*_*qxg 5

SELECT Name
FROM table1 
WHERE Salary IN (
    SELECT Salary
    FROM table1
    GROUP BY Salary
    HAVING COUNT(*) > 1
)
Run Code Online (Sandbox Code Playgroud)