MySQL sum和Group By,数据标识第二个表中的信息

时间:2013-03-18 20:00:47

标签: mysql group-by sum

我有一个商店类型数据库,我需要运行一个报告,其中我总计了一个客户的所有购买。

由于此数据库对商店的特殊需求,用户ID分为两部分:compID和userId。例如,用户可能具有“ABCD”ID,其中“AB”表示他们工作的公司,“CD”是他们的特定ID,但它仍然引用它与“AB”制作相匹配的事实。它是来自任何其他“CD”用户值的唯一值。 (我知道这是一种奇怪的方式,但是需要的是尽可能地缩短用户ID,同时仍然拥有最多的插槽。)

无论如何,我的问题是,当我尝试编写一个查询来累计我的一个用户的购买时,我找不到从第二个表中提取额外信息的方法,例如该用户的名字。

这可能是表格。

f_purchases表存储每笔销售的数据,例如userID(及其compID)和购买价值

f_user表有关于用户的深度信息,例如userID,compID,name,contact等。

当我只选择原始数据时,此查询有效:

SELECT f_purchases.compID, f_purchases.userID, sum(f_purchases.amount) as Total FROM f_purchases GROUP BY f_purchases.compID, f_purchases.userID

但是当我尝试使用Join或多表查询时,我找不到一种方法来引入来自f_user的标识信息,例如name。我想如果我有类似

的话,我就能得到f_user.name
WHERE f_purchases.compID=f_user.compID AND f_purchases.userID=f_user.userID

我的另一个想法是,我可以以某种方式使用连接来加入ID的两个部分,但我不知道从哪里开始。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

我想我之前有过一些不合适的事情,但经过再次尝试之后,它现在可以正确地总结一切。这是有效的:

SELECT f_user.first, f_purchases.compID, f_purchases.userID, sum( f_purchases.amount ) AS Total
FROM f_purchases, f_user
WHERE f_purchases.compID = f_user.compID
AND f_purchases.userID = f_user.userID
GROUP BY f_purchases.compID, f_purchases.userID

对不起,首先发帖。