[英]Grouping columns into rows SQL
I am trying to group feature and value all on one line. 我试图在一行上对功能和值进行分组。 Someone recommended GROUP_CONCAT but when I do that I lose all my other products.
有人推荐GROUP_CONCAT,但是当我这样做时,我失去了所有其他产品。 Here is the SQL call I currently have
这是我目前的SQL调用
SELECT ps_product_lang.name, CONCAT(ps_feature_lang.name) AS feature, ps_feature_value_lang.value FROM ps_product LEFT JOIN ps_product_lang ON ps_product_lang.id_product = ps_product.id_product LEFT JOIN ps_feature_product ON ps_feature_product.id_product = ps_product.id_product LEFT JOIN ps_feature_lang ON ps_feature_lang.id_feature = ps_feature_product.id_feature LEFT JOIN ps_feature_value_lang ON ps_feature_value_lang.id_feature_value = ps_feature_product.id_feature_value
which gives me a return like this 这给了我这样的回报
name feature value
MRO Plus Heavy Pad Height 5
MRO Plus Heavy Pad Width 12
MRO Plus Heavy Pad Depth 13
MRO Plus Heavy Pad Weight 15
ENV810™ Sorbent Boom Height 88
ENV810™ Sorbent Booms Width 50
ENV810™ Sorbent Booms Depth 23
ENV810™ Sorbent Booms Weight 45
ENV510™ Sorbent Booms NULL NULL
MRO Plus Medium Pad NULL NULL
When I try GROUP_CONCAT my results looks like this. 当我尝试GROUP_CONCAT时,我的结果看起来像这样。
Name Feature Value
MRO Plus Heavy Pad Height,Width,Depth,Weight,Height,Width,Depth,Weigh... 5,12,13,15,88,50,23,45
Is there a way in MySQL to get it to look like this 在MySQL中是否有办法让它看起来像这样
Name Feature Value
MRO Plus Heavy Pad Height, Width, Depth, Weight 5, 12, 13, 15
ENV810 Sorbent Boom Height, Width, Depth, Weight 88, 50, 23, 45
ENV510 Sorbent Boom Null Null
MRO Plus Medium pad Null Null
Any help would be greatly appreciated! 任何帮助将不胜感激!
The GROUP_CONCAT is a MySQL specific aggregate function , which works with the GROUP BY clause. GROUP_CONCAT是MySQL特定的聚合函数 ,它与GROUP BY子句一起使用。 You have to specify the column with the GROUP_BY clause at the end of your query to make it work.
您必须在查询末尾指定带有GROUP_BY子句的列才能使其正常工作。
Sample: 样品:
SELECT ps_product_lang.name, GROUP_CONCAT(ps_feature_lang.name) AS feature, ps_feature_value_lang.value FROM ps_product LEFT JOIN ps_product_lang ON ps_product_lang.id_product = ps_product.id_product LEFT JOIN ps_feature_product ON ps_feature_product.id_product = ps_product.id_product LEFT JOIN ps_feature_lang ON ps_feature_lang.id_feature = ps_feature_product.id_feature LEFT JOIN ps_feature_value_lang ON ps_feature_value_lang.id_feature_value = ps_feature_product.id_feature_value GROUP BY ps_product_lang.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.