嵌套查询的Noob问题。这个SQL查询有一点问题。请帮忙。尝试按月,年在同一个表和分组中计算2个字段。查询在新的和续订字段中返回相同的结果。MONTH的嵌套MYSQL组,年,
SELECT MONTH(p.created_at) as Month, YEAR(p.created_at) as Year,
(SELECT COUNT(p.id) FROM payments p
INNER JOIN carts c ON c.payment_id = p.id
INNER JOIN cart_items ci on ci.cart_id = c.id
WHERE ci.item_id = 8) as 'New',
(SELECT COUNT(p.id) FROM payments p
INNER JOIN carts c ON c.payment_id = p.id
INNER JOIN cart_items ci on ci.cart_id = c.id
WHERE ci.item_id = 13) as 'Renewal',
FROM payments p
GROUP BY month, year
感谢您的帮助!
查询Expample
Month Year New Renewal
1 2010 1169 556
1 2011 1169 556
1 2012 1169 556
2 2010 1169 556
2 2011 1169 556
提供一些示例数据,它会更容易回答。告诉我们这个查询的结果是什么,以及你希望得到的结果是什么。 – 2012-04-29 15:14:49
是的,请向我们展示一些示例数据。另外,如果您取出子查询并自行运行,会发生什么?它看起来唯一的区别是'ci.item_id'是8或13,对吗?这是数据库中'new'或'renewal'的正确数字吗? – Daan 2012-04-29 15:31:42
添加上述查询中的示例数据。 Item_id = 8是一个新的db,13是db中的更新。如果我拉一个简单的选择,而不添加第二个产品,所有的数据就像我想要的那样出来。看起来像@nishant回答下面 – tumolo 2012-04-30 11:21:26