sql >> Base de Datos >  >> RDS >> Mysql

Cómo seleccionar datos de una tabla de pares de valores clave

Puede usar la agregación condicional para obtener toda la información de un parentid en una fila y luego usar un where cláusula para la condición requerida.

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

Esto supone que solo hay una fila por clave por parentid en la tabla.