Mysql 在具有SUM的子查询中按分组

Mysql 在具有SUM的子查询中按分组,mysql,Mysql,我确信我这样做是错误的,但是需要一些帮助,使用GROUPBY列从第二个表中获取聚合 下面是我的示例查询 SELECT id, SUM(prices) "price_total", (SELECT SUM(item_cost) as total_cost FROM items WHERE date_created=date_added) as total_items FROM products GROUP BY date_added 这给了我

我确信我这样做是错误的,但是需要一些帮助,使用GROUPBY列从第二个表中获取聚合

下面是我的示例查询

SELECT id, SUM(prices) "price_total", 
    (SELECT SUM(item_cost) as total_cost 
    FROM items 
    WHERE date_created=date_added) as total_items 
FROM products 
GROUP BY date_added
这给了我一个奇怪的结果,即每个总的_项都是相同的数量,并且比表中的要大得多。任何指导都将不胜感激


基本上,我需要从items表中获取添加的分组日期的总数。

使用联接,而不是相关子查询

SELECT p.date_added, SUM(p.prices) AS price_total, i.cost_total
FROM products AS p
JOIN (
    SELECT date_created, SUM(item_cost) AS cost_total
    FROM items
    GROUP BY date_created
) AS i ON i.date_created = p.date_added

选择id没有意义,因为您只需从每个日期随机选择一个产品id。

正是我需要的,谢谢。我没有这种感觉one@Strawberry事实上,我不太清楚为什么原始代码不是等价的,因为子查询应该与同一事物相关。起初我认为它与产品ID相关,这是错误的。