Mysql只连接特定的行

时间:2016-07-06 22:57:57

标签: mysql

在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进行连接。无论更简单/更简单。

请帮忙吗?

1 个答案:

答案 0 :(得分:2)

从上面看这个问题,你将需要联盟' 2个查询在一起。联合的第一部分是你的结果,第二部分是你的原始行。对于第一部分,您将需要在此表中按照

的方式进行自联接

从表a中选择concat(a.paramname,b.paramname),concat(a.value,b.value),表b其中a.paramcategory = b.paramcategory

沿着这些方向......

实际上,如果您更换联盟的两个部分,您也会保留原始列名称。