复杂的SQL查询(总和条目)

时间:2013-08-14 18:26:45

标签: mysql sql

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

假设我有这些表格:

表格订单

id tax 
01 800 
02 255

Table DetailOrders

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

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

是否有任何方法可以编写返回类似这样的SQL查询:

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

它会将具有相同ID的项目的价格相加,并以某种方式合并具有相同ID的项目的名称。

可以实现这样的目标吗?

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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