Mysql
 sql >> Database >  >> RDS >> Mysql

Come selezionare i dati da una tabella di coppie chiave-valore

Puoi utilizzare l'aggregazione condizionale per ottenere tutte le informazioni per un genitore su una riga e quindi utilizzare un where clausola per la condizione richiesta.

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

Ciò presuppone che ci sia solo una riga per chiave per genitore nella tabella.