Mysql查询从A开始计数而不是在B中

标签 mysql join count

我得到了一个表 A 和一个表 B(以及一个并不真正相关的表 C)。关系为 1:n。

Table A
- id
- c_foreign_key

Table B
- id
- A_id
- datetime

表 A 约有 40 万个条目,表 B 约有 2000 万个条目。

我有一个时间范围,比如说从 2014/01/01 到 2014/12/31。

我想要这个范围内每个月的数据是: 计算表 A 中的所有条目,按 c_foreign_key 分组,其中表 A 在表 B 中没有(月 - 1.年到月)的条目。

结果应如下所示:

date    c_foreign_key   count(*)
--------------------------------
14/01   1               2000
14/01   2               3000
...
14/02   1               4000
14/01   2               6000
...

我已经尝试过左连接和“不在选择中”,每个月的性能都不是很好。

最佳答案

您应该通过解释更多信息来调试您的 SQL 查询 Mysql Explain Syntax ,您还应该将 index- es 放在 datetime 字段上以获得更好的性能。解释通常用于查看mysql在您的查询中使用了哪些索引。

关于Mysql查询从A开始计数而不是在B中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296667/

相关文章:

php - MySQL - 在需要时添加增值税

c# - 单元格值不会改变 DataGridview

php - ORDER BY 破坏 mysql 查询

mysql - 在 Mysql 中获取那些 id 不同的行

部分重叠数据的Sql Join

PHP MySQL 多重计数连接加法

SQL 最小值和计数

php - 复杂的 MySQL 连接与替换列

sql - 从没有行的计数中获取 0 值

mysql - Multi Subquery count函数无法承受多重选择的压力