【问题标题】:Merging rows from the same column in SQL在 SQL 中合并来自同一列的行
【发布时间】:2016-03-22 00:26:43
【问题描述】:

我知道有很多关于这个的帖子,但我就是不明白怎么做?

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

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')

这给了我:

Query results

我想合并/合并元值数据“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,这些是我想要合并/加入的行。

【问题讨论】:

标签: mysql sql select merge row


【解决方案1】:

找到了一种方法;)

刚刚更改了我的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-09
    • 2013-11-13
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2017-11-24
    相关资源
    最近更新 更多