[英]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.