Table name-userdb,
id | name | value,
1 | fname | anand,
1 | lname | kumar,
1 |city | bangalore,
2 |fname |mahesh,
2 |lname |sahoo,
2 |city |manglore,
3 |fname |anil,
3 |lname |singh,
3 |city |balasore..
我需要显示
fname | lname | city,
anand | kumar | bangalore,
mahesh | sahoo | manglore,
anil |singh |balasore,
为此请给我mysql查询
答案 0 :(得分:0)
我强烈建议重组数据库,这不是处理请求的可行方法。
SELECT udb1.value as fname, udb2.value as lname, udb3.value as city
FROM `name-userdb` udb1
JOIN `name-userdb` udb2 ON udb1.id=udb2.id AND udb2.name='lname'
JOIN `name-userdb` udb3 ON udb1.id=udb3.id AND udb3.name='city'
WHERE udb1.name='fname';
再次!这是not
正确的方法!
我只是在这里给出答案,因为它看起来类似于标签/过滤系统,有人可能需要答案。
答案 1 :(得分:0)
mmm .. EAVS ......除了实际实施标准化设计的明显建议之外,您可以实现您想要的目标:
Select Min( Case When name = 'fname' Then value End ) As fname
, Min( Case When name = 'lname' Then value End ) As lname
, Min( Case When name = 'city' Then value End ) As city
From MyTable
Group By Id