繁体   English   中英

合并SQL中同一列的行

[英]Merging rows from the same column in SQL

我知道有很多关于此的文章,但我只是不明白该怎么做?

这是我正在使用的代码(此处未合并):

SELECT coupon_code, order_id, youwp_woocommerce_order_itemmeta.meta_value, youwp_postmeta.meta_value  

FROM `youwp_woocommerce_order_items`, `youwp_woocommerce_order_itemmeta`, `youwp_postmeta`, `you_ambassador`  

WHERE you_ambassador.user_id = 1
AND youwp_woocommerce_order_items.order_item_name = you_ambassador.coupon_code
AND order_id = youwp_postmeta.post_id
AND youwp_woocommerce_order_items.order_item_id = youwp_woocommerce_order_itemmeta.order_item_id
AND youwp_woocommerce_order_itemmeta.meta_key = 'discount_amount'
AND (youwp_postmeta.meta_key = '_billing_first_name' OR youwp_postmeta.meta_key = '_billing_last_name')

这给了我:

查询结果

我想合并/合并meta_value数据“ Kennet Leth”和“Sørensen”,它们是:

youwp_postmeta.meta_key ='_billing_first_name'
youwp_postmeta.meta_key ='_billing_last_name'

我使用STUFF或MAX和GROUP BY找到了类似问题的一些答案,但我只是不理解语法?

是在答案使用t1和t2或A和B(t1.value-t2.value或A.value = B.value)之类的选择时,我才不明白吗?
我试图更改这些解决方案,以使其适合我的代码,但无法使其正常工作:

SELECT STUFF((SELECT ', ' + A.[Bank Account No] FROM tbl_Customer_Bank_Details A
Where A.[Customer ID]=B.[Customer ID] FOR XML PATH('')),1,1,'') As [Bank Accounts]
From tbl_Customer_Bank_Details B
Group By [Customer ID], [Customer Name]

要么

SELECT Code,
   ( SELECT Name + ' '
       FROM Table1 t2
      WHERE t2.Code = t1.Code
      ORDER BY Name
        FOR XML PATH('') ) AS Name
  FROM Table1 t1
  GROUP BY Code ;

如何输入表和列的值?

编辑:
为了澄清起见,我试图合并“ youwp_postmeta.meta_value”列中的2行/结果。
我从指定的结果:

WHERE (youwp_postmeta.meta_key = '_billing_first_name'  
OR youwp_postmeta.meta_key = '_billing_last_name')
AND order_id = youwp_postmeta.post_id

所以我为每个order_id获得2行,为_billing_first_name分配一个行,为_billing_first_name分配一个行,这些是我要合并/合并的行。

找到了一种方法来做到这一点;)

刚刚更改了我的SELECT字符串以包括下查询和CONCAT():

SELECT coupon_code, order_id, im.meta_value, 
CONCAT((SELECT pm.meta_value FROM `youwp_postmeta` AS pm WHERE pm.meta_key = 
'_billing_first_name' AND order_id = pm.post_id), ' ',
(SELECT pm.meta_value FROM `youwp_postmeta` AS pm WHERE pm.meta_key = 
'_billing_last_name' AND order_id = pm.post_id)) AS name

FROM 
`youwp_woocommerce_order_items` AS i,
`youwp_woocommerce_order_itemmeta` AS im,
`youwp_postmeta` AS pm,
`you_ambassador` AS a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM