0

我有这样的表:

uid | 确定 | 价值
1 | 1 | nameOf1
1 | 2 | 姓氏Of1
1 | 3 | 国家/地区
2 | 1 | nameOf2
2 | 2 | 姓Of2

并且需要像这样转换/选择它:

uid | 姓名 | 姓氏 | 国家
1 | nameOf1 | 姓氏Of1 | 国家/地区
2 | nameOf2 | 姓Of2 | ..
4

2 回答 2

1

尝试类似:

SELECT t1.uid, t2.value AS name, t3.value AS surname, t4.value AS country FROM table t1
  LEFT JOIN table t2 on t2.uid = t1.uid AND t2.fid = 1
  LEFT JOIN table t3 on t3.uid = t1.uid AND t3.fid = 2
  LEFT JOIN table t4 on t4.uid = t1.uid AND t4.fid = 3
  GROUP BY t1.uid;

或者:

SELECT DISTINCT t1.uid, t2.value AS name, t3.value AS surname, t4.value AS country FROM table t1
  LEFT JOIN table t2 on t2.uid = t1.uid AND t2.fid = 1
  LEFT JOIN table t3 on t3.uid = t1.uid AND t3.fid = 2
  LEFT JOIN table t4 on t4.uid = t1.uid AND t4.fid = 3;
于 2013-11-17T15:30:02.530 回答
0

It's a little complex, but you could do something like:

select distinct uid as uid,
   (select value from dataTable as table1 
           where table1.uid=dataTable.uid and fid = 1) as name,
   (select value from dataTable as table2 
           where table2.uid=dataTable.uid and fid = 2) as surname,
   (select value from dataTable as table3 
           where table3.uid=dataTable.uid and fid = 3) as country
from dataTable group by uid

SQLFiddle

于 2013-11-17T15:35:19.667 回答