Mysql分组与计数

标签 mysql join count group-by

我有 3 张 table :

1 TableTraders
trader_id|Domain|
---------------------
1|google.com
2|yahoo.com

2 个表 Counter_in

counter_time    counter_ip  counter_domain_id
    111111  222222  1
    111111  222224  2
    111111  222225  3
    111111  222232  2
    111111  222221  3
    111111  222223  4
    1111311     22223422    5



 3 Table Out Counter
counter_time    counter_ip  counter_domain_id
    111111  222222  1
    111111  222222  2
    111111  222222  3
    111111  222226  2
    111111  222221  3
    111111  222222  4
1309351485  2130708581  5
    1309351485  2130708581  4
    1309710116  2130706433  4
    1309351485  2130708581  1
1309710274  2130706433  1

好吧,我想要做的是将表 1 、 2 、 3 连接起来,并将它们分组在一起,然后对它们进行计数。

trader_id|DOMAIN|IN|OUT
--------------------------
1|google.com|3|1
2|yahoo.com|1|2

我尝试了很多方法,但总是得到错误的结果。我如何正确加入查询以获得我想要的结果

*编辑

尝试的查询:

SELECT traders.trader_id, traders.domain, COUNT( counter_in.counter_domain_id ) AS today_in, COUNT( counter_out.counter_domain_id ) AS today_out
FROM traders
JOIN counter_in ON traders.trader_id = counter_in.counter_domain_id
JOIN counter_out ON traders.trader_id = counter_out.counter_domain_id
GROUP BY traders.trader_id, traders.domain
LIMIT 0 , 30

结果:

trader_id   domain  today_in    today_out
1   bing.com    3   3
2   google.com  4   4
3   yahoo.com   4   4
4   msn.com     3   3
5   yandex.com  1   1

最佳答案

SELECT
  TableTraders.trader_id,
  TableTraders.Domain,
  COUNT(TableIn.trader_id) AS in_count,
  COUNT(TableOut.trader_id) AS out_count
FROM TableTraders 
  JOIN TableIn ON TableTraders.trader_id = TableIn.trader_id
  JOIN TableOut ON TableTraders.trader_id = TableOut.trader_id
GROUP BY TableTraders.trader_id, TableTraders.Domain

不确定上面示例中的表名称是什么,因为它们包含空格。替换正确的表名称。

关于Mysql分组与计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6831278/

相关文章:

php - 使用 PHP 和 MySQL 同时更新具有不同值的多个用户数据

mysql加速搜索查询

sql - Count() 在 SQL 中没有按预期工作

haskell - 计算列表中每个元素的所有出现次数

java - 包含 select 和 update 语句的 Mysql 过程...如何从 Java 调用此类过程

mysql - 多次查询数据库的最有效方法

sql - 连接两个表但删除另一个表中已存在的行

php - 三表内部连接与空表进行搜索

c# - 使用 JOIN 的 ADO.NET 实体模型和 LINQ

mysql - 计算mysql中的匹配项