我目前正在努力查询项目管理软件(这是一个学校项目)。
我有以下表格:
projectID | cID | value
---------------|-------------------------
1 | 3 | 321
1 | 4 | 442
2 | 3 | 999
2 | 4 | 799
最终产品应如下所示:
c1 | c2
---------------|-----------------
321 | 442
999 | 799
现在,问题在于可能存在无限数量的c1,c2等以及无数个项目。所以表格会变得很大(两个方向)。
有没有办法让列声明“本身”?如果没有,让我说我将c1,c2,...的数量限制为5,我该怎么办?我试过像:
select v1.value, v2.value from value v1, value v2
答案 0 :(得分:0)
我相信使用条件聚合可以获得您的转轴结果:
select
max(case when cid = 3 then value end) as c1,
max(case when cid = 4 then value end) as c2,
...
from yourtable
group by projectid
是的,有一种方法可以通过字符串操作和连接在MySQL过程中构建动态语句,然后使用EXECUTE
执行它。