MySQL SELECT语句检索唯一的字段值

时间:2013-04-13 15:59:22

标签: mysql sql select

例如

id   staff_id   skill_id   mainskill
1    1          24         1
2    1          24         0 
3    1          7          0
4    4          24         0
5    4          18         0
6    6          8          0
7    6          18         1

我希望结果只包含带有skill_id的元组,该元素在所有数据中只出现一次。换句话说,我想检索包含仅由一名工作人员拥有的skill_ids的元组。

所以期望的输出是:

id   staff_id   skill_id   mainskill
3    1          7          0
6    6          8          0

提前致谢:)。

1 个答案:

答案 0 :(得分:3)

您可以使用GROUP BYHAVING执行此操作,如下所示:

SELECT 
  MAX(id) as id,
  MAX(staff_id) as staff_id, 
  skill_id, 
  MAX(mainskill) as mainskill
FROM MyTable
GROUP BY skill_id
HAVING COUNT(1)=1