MySQL sum +内连接查询

时间:2011-08-31 04:37:20

标签: mysql sql join aggregate-functions

问题:

  • 表1:id.1 | name.Joe |等一些| ......其他| ...数据
  • 表2:id.X |号码。+ 1 123 555 9999 | useridfromtable1.1 - >将电话与Joe联系起来
  • 表3:id。 X |号码。+ 1 123 555 9999 | calls.55

我需要一个连接3个表的查询,我只有表1中的id(userid)。 所以,我需要来自userid - >抓住电话 - >来自电话会议上的表格3。

答案:

SELECT t1.name,t1.id,t2.number,t3.calls
  FROM table1 t1
INNER JOIN table2 t2 ON t2.useridfromtable=t1.id
INNER JOIN table3 t3 ON t3.number = t2.number

新问题?

您是否有机会知道如何在结果上打印调用总和?在所有这些加入后,我得到了大约10行同一个用户和他们各自的电话,这对我的要求是正确的,现在我需要返回1行中带有值的所有电话:

sum | user ID | user Name

2 个答案:

答案 0 :(得分:0)

也许这会有用:

SELECT SUM(t3.calls) FROM table1 t1 INNER JOIN table2 t2 ON t2.useridfromtable=t1.id INNER JOIN table3 t3 ON t3.number = t2.number

答案 1 :(得分:0)

尝试此查询:

SELECT sum(t3.calls), t1.id, t1.name
FROM table1 t1
INNER JOIN table2 t2 ON t2.useridfromtable=t1.id
INNER JOIN table3 t3 ON t3.number = t2.number
GROUP BY t1.id