Bik*_*h M 2 mysql sql entity-attribute-value
表A.
id,parentID, key, value
1, 2, name, name1
2, 2, age, 20
3, 2, place, place1
50, 7, name, namex
51, 7, age, 20
52, 7, place, place1
........
101, 5, name, namez
102, 5, age, 23
103, 5, place, place2
Run Code Online (Sandbox Code Playgroud)
我需要以波纹管格式获得plave = place1和age = 20的所有日期
parentid, name, age, place
2, name1, 20, place1
7, namex, 20, place1
Run Code Online (Sandbox Code Playgroud)
如何编写Mysql SQL查询请帮帮我
您可以使用条件聚合将parentid的所有信息都放到一行,然后使用一个where子句来表示所需的条件.
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
Run Code Online (Sandbox Code Playgroud)
这假设表中每个parentid只有一个键.