簡體   English   中英

將具有相同 id 但不同值的行合並到每個 id 的單行中

[英]Merge rows with same id but different values into single row per id

我有一個按產品 ID 查找類別的查詢。 注意:某些產品可以有多個類別。 我當前的查詢為不同的類別返回相同的 id

SELECT 
  oc_product.product_id, 
  oc_category_description.name 
FROM 
  oc_product 
  LEFT JOIN oc_product_to_category ON oc_product.product_id = oc_product_to_category.product_id 
  LEFT JOIN oc_category_description ON oc_product_to_category.category_id = oc_category_description.category_id;

結果:

product_id 分類名稱
100 貯存
100 固態硬盤
100 硬盤
200 貯存
200 固態硬盤
200 硬盤

我想合並具有相同 product_id 的行,並將每個 category_name 作為額外的列添加到左側。

所需的 output:

product_id 分類名稱 類別名稱 2 類別名稱 3
100 貯存 固態硬盤 硬盤
200 貯存 固態硬盤 硬盤

SQL 查詢的列必須在解析查詢時固定。 查詢不能 append 更多列,因為它在執行期間發現數據。

您可以使用數據透視表技術,但前提是您知道每個產品的類別數量需要多少列。

我建議您像在第一個示例中那樣按行獲取結果,然后在客戶端應用程序中編寫代碼以將其格式化為列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM