【发布时间】:2018-05-14 10:04:48
【问题描述】:
我有这样的表:
uid |确定 |价值 1 | 1 | nameOf1 1 | 2 |姓氏Of1 1 | 3 |国家/地区 2 | 1 | nameOf2 2 | 2 |姓Of2并且需要像这样转换/选择它:
uid |姓名 |姓氏 |国家 1 | nameOf1 |姓氏Of1 |国家/地区 2 | nameOf2 |姓Of2 | ..【问题讨论】:
我有这样的表:
uid |确定 |价值 1 | 1 | nameOf1 1 | 2 |姓氏Of1 1 | 3 |国家/地区 2 | 1 | nameOf2 2 | 2 |姓Of2并且需要像这样转换/选择它:
uid |姓名 |姓氏 |国家 1 | nameOf1 |姓氏Of1 |国家/地区 2 | nameOf2 |姓Of2 | ..【问题讨论】:
尝试类似:
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;
【讨论】:
这有点复杂,但你可以这样做:
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
【讨论】: