2013-04-13 2 views
1

НапримерMySQL ЗЕЬЕСТ, чтобы получить значение поля, которое является уникальным

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, который присутствует только один раз во всех данных. Другими словами, я хочу получить кортежи, содержащие навыки, которые принадлежат только одному сотруднику.

И поэтому желаемый результат:

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

Спасибо заранее :).

ответ

3

Вы можете сделать это с GROUP BY и HAVING, как это:

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

Большое спасибо; работает красиво! –

Смежные вопросы