我正在使用一个基本表,我很好奇是否有可能让我的 ID 的所有内容都显示在同一行上?下面我展示了当前查询和输出的示例,以及我希望如何显示输出。
根据OrderID从 sample 订单中选择OrderID、Item、Quantity、Location
-----------------------------------
|OrderID | Item | Weight | Location|
-----------------------------------
1 apple 4.2 Wi
1 banana 2.1 Wi
2 orange 1 Mi
3 apple 1.8 Mn
3 grape .5 Mn
我希望看到它像这样导出:
------------------------------------------------------
|OrderID | Apple | Banana | Orange | Grape | Location|
------------------------------------------------------
1 4.2 2.1 Wi
2 1 Mi
3 1.8 .5 Mn
最佳答案
您似乎需要条件聚合:
SELECT
OrderID,
MAX(CASE WHEN item = 'apple' THEN weight END) Apple,
MAX(CASE WHEN item = 'banana' THEN weight END) Banana,
MAX(CASE WHEN item = 'orange' THEN weight END) Orange,
MAX(CASE WHEN item = 'grape' THEN weight END) Grape
Location
FROM samples
GROUP BY OrderID, Location
关于mysql - 根据 OrderID 项目创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54201858/