-1

我想知道这样的事情是否可以在 SQL 查询中实现。

假设我有这些表:

表顺序

id tax 
01 800 
02 255

表详细信息订单

id price itemName
01 700   Book
01 500   Umbrella
01 100   Jacket
02 1000  Piano

基本上,一个表 Orders 的单个条目对应于 DetailOrders 中的多个条目。

是否有任何方法可以编写返回如下内容的 SQL 查询:

id tax sum-price all-names
01 800   1300    Book, Umbrella, Jacket
02 255   1000    Piano

它将对具有相同 id 的商品的价格求和,并以某种方式合并具有相同 id 的商品的名称。

这样的事情能实现吗?

4

2 回答 2

1

像这样的东西怎么样

SELECT  o.id,
        o.tax,
        sum(od.price) sum_price,
        group_concat(itemName) all_names
FROM    Orders o INNER JOIN
        DetailOrders do ON o.id = do.id
GROUP BY o.id,
         o.tax

看看GROUP_CONCAT(expr)

此函数返回一个字符串结果,其中包含来自组的串联非 NULL 值。如果没有非 NULL 值,则返回 NULL。

于 2013-08-14T18:30:50.823 回答
0

这并不难:

select
    o.id, o.tax,
    sum(d.price),
    group_concat(d.itemName)
from
    orders as o
    inner join detailOrders as d on o.id = d.id
group by
    o.id
于 2013-08-14T18:31:24.860 回答