2015-02-04 2 views
0

У меня есть таблица MySQL, как показано ниже:MySQL выбрать несколько строк в ключевых парах значений

++++++++++++++++++++++++++++++ 
id | uid | key  | value 
++++++++++++++++++++++++++++++ 
1 | u01 | instrument | guitar 
2 | u01 | level_____ | 10 
3 | u02 | instrument | guitar 
4 | u02 | level_____ | 1 

Теперь я хочу, чтобы выполнить запрос, который осуществляет поиск: Всего UID которого может играть как на гитару и имеет уровень 10 и результат должен показать, как:

результат>

uid : u01 

Но я вроде застрял, и не знаю, что должно быть запрос типа. Я знаю, что я мог бы выполнить условный агрегат, но может понравиться кому-то направлять меня

+0

догадку. я должен понять это самостоятельно. –

ответ

0
select uid 
from your_table 
where `key` = 'instrument' 
and `value` in ('guitar','violin') 
group by uid 
having count(distinct `value`) = 2 
Смежные вопросы