2013-04-13 58 views
1

例如MySQL的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_id的元組。

因此所需的輸出是:提前

id staff_id skill_id mainskill 
3 1   7   0 
6 6   8   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 
+0

非常感謝你;很好地工作! –