我想知道这样的事情是否可以在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的项目的名称。
可以实现这样的目标吗?
答案 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
此函数返回带有连接非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