在Mysql中,我有下表:
id | paramname | paramcategory | value |
---+-------------+-------------------+-----------------+
1 | width | dimensions | 240 |
2 | height | dimensions | 400 |
3 | param1 | category1 | some value 1 |
4 | param2 | category1 | some value 2 |
5 | param3 | category10 | some value 100 |
...
我希望有一个查询将返回一个只有几行连接的表,而其他所有行应保持不变,如下所示:
paramname | value |
--------------+--------------+
width, height | 240 x 400 |
param1 | some value 1 |
...
我正在考虑根据所需的paramcategory
进行连接,但如果可能/需要,也可以针对特定的paramname
进行连接。无论更简单/更简单。
请帮忙吗?
答案 0 :(得分:2)
从上面看这个问题,你将需要联盟' 2个查询在一起。联合的第一部分是你的结果,第二部分是你的原始行。对于第一部分,您将需要在此表中按照
的方式进行自联接从表a中选择concat(a.paramname,b.paramname),concat(a.value,b.value),表b其中a.paramcategory = b.paramcategory
沿着这些方向......
实际上,如果您更换联盟的两个部分,您也会保留原始列名称。