Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como selecionar dados de uma tabela de pares de valores-chave


Você pode usar a agregação condicional para obter todas as informações de um parentid em uma linha e, em seguida, usar um where cláusula para a condição exigida.
select * from (
select parentid
,max(case when key='name' then value end) as name
,max(case when key='age' then value end) as age
,max(case when key='place' then value end) as place
from tableA
group by parentid 
) t
where place='place1' and age=20

Isso pressupõe que há apenas uma linha por chave por parentid na tabela.