簡體   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