- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两张 table 。一个是记录调用的调用历史表(开始时间、结束时间、电话号码、用户等)。另一个是记录订单详细信息(订单号、客户信息、订单日期等)的订单表。创建调用时并不总是创建订单,因此没有保证的 ID 可以匹配它们。现在,我有兴趣按天计算总数。当我尝试运行一个查询以按天汇总调用和加入订单时,我收到以下错误:
The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
这是我使用的查询:
SELECT
DATE_FORMAT(c.date_call_start,'%Y-%m-%d') as date,
COUNT(c.id) as calls,
COUNT(o.id) as orders
FROM tbl_calls c
LEFT OUTER JOIN tbl_orders o
ON DATE_FORMAT(c.date_call_start,'%Y-%m-%d') = DATE_FORMAT(o.created,'%Y-%m-%d')
WHERE c.campaign_id = 1
AND DATE_FORMAT(c.date_call_start,'%Y-%m-%d') = '2013-12-09'
GROUP BY DATE_FORMAT(c.date_call_start,'%Y-%m-%d')
即使某一天只有几个调用,它仍然会显示相同的错误。所以我很确定我的查询需要处理。
我也试过一个子查询,但它没有汇总子查询的总数。
SELECT
DATE_FORMAT(c.date_call_start,'%Y-%m-%d') as date,
count(c.id) as calls,
(select count(DISTINCT o.id)
FROM tbl_orders o
WHERE DATE_FORMAT(o.created,'%Y-%m-%d') = DATE_FORMAT(c.date_call_start,'%Y-%m-%d')
) as orders
FROM tb_calls c
WHERE c.campaign_id = 1
AND DATE_FORMAT(c.date_call_start,'%Y-%m-%d') BETWEEN '2013-12-09' AND '2013-12-15'
GROUP BY DATE_FORMAT(c.date_call_start,'%Y-%m-%d')
WITH ROLLUP
关于如何让这个查询起作用有什么想法吗?最终我想要一个如下所示的结果,这样我就可以进行其他计算,例如订单百分比等。
date | calls | orders
------------------------------------
2013-12-01 | 100| 10
2013-12-02 | 125| 20
NULL | 225| 30
更新:根据答案,我做了以下事情:为 tbl_calls 创建了带有日期字段(无日期时间)的 call_date 字段为 tbl_orders 创建了日期格式(不是日期时间)的 date_order 字段更新了每个表并将新字段设置为来自同一表的 = date_format(the_date_time_stamp,'%Y-%m-%d')。还为每个新日期字段添加了索引。
这使得以下查询有效:
SELECT
c.call_date as date,
COUNT(DISTINCT c.id) as calls,
COUNT(DISTINCT o.id) as orders,
ROUND((COUNT(DISTINCT o.id) / COUNT(DISTINCT c.id))*100,2) as conversion
FROM tbl_calls c
JOIN tbl_orders o
ON c.call_date = o.date_order
WHERE c.campaign_id = 1
AND c.call_date BETWEEN '2013-12-09' AND '2013-12-15'
GROUP BY c.call_date
WITH ROLLUP
这给了我以下结果,我可以以此为基础。感谢每一位提供建议的人。我尝试了每一个。一切都说得通。但是,由于我最终不得不创建额外的日期字段,所以我选择了答案
date | calls | orders| conversion
-------------------------------------------
2013-12-09 | 151 | 6 | 3.97
2013-12-10 | 164 | 2 | 1.22
2013-12-11 | 165 | 6 | 3.64
2013-12-12 | 189 | 1 | 0.53
2013-12-13 | 116 | 4 | 3.45
null | 785 | 19 | 2.42
最佳答案
首先 - 尝试 EXPLAIN SELECT....
的结果,其中 ...
是上面其余的选择查询。
由于您正在对两个应用了函数的字段执行连接 - 我猜测 MySQL 正在执行两次全表扫描并使用 all
类型进行连接.参见 this for an explanation EXPLAIN
输出。
DATE_FORMAT(c.date_call_start,'%Y-%m-%d') = DATE_FORMAT(o.created,'%Y-%m-%d')
您很可能希望在每个表中创建一个单独的字段,只包含 DATE_FORMAT 调用的结果。然后为每个新字段创建一个索引。然后加入这些新的索引字段。 MySQL 应该更喜欢这样。
关于MySQL MAX_JOIN_SIZE 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624365/
我正在为我本地的足球队制作一个网站,我想在一个页面上显示每个团队成员的一些简单数据(场上位置、比赛次数、进球数等)。我尝试通过对数据库的一次查询来选择所有需要的数据,因为我了解到最大限度地减少网络调用
我有两张 table 。一个是记录调用的调用历史表(开始时间、结束时间、电话号码、用户等)。另一个是记录订单详细信息(订单号、客户信息、订单日期等)的订单表。创建调用时并不总是创建订单,因此没有保证的
我代表遇到此问题的一小部分用户问这个问题。 一旦他们使用的脚本获得第 21 个 ID,就会生成以下错误: The SELECT would examine more than MAX_JOIN_SIZ
我运行此查询: SELECT u.user_id, u.fname, u.lname, n.title, n.news_id, n.post, n.zip, z.city,z.state_abbr F
我们正在连接 3 个表,分别包含约 21000 行、约 2000 行和约 1600 行。 MAX_JOIN_SIZE 约为 8.000.000。每个表都包含一个名为providerID 的列。 查询如
当运行一个连接来自 3 个大表的数据的查询时,我收到一条错误消息 The SELECT would examine more than MAX_JOIN_SIZE rows; check you
我开发了一个考勤管理系统,我想通过运行以下查询来生成报告,这将是大量的行,我在共享主机上并收到以下错误: 查询: SELECT `attendance`.*, `users`.`id` AS use
我有一个 SQL 查询失败(大部分时间),因为连接的行太多。 MySQL 提供的错误是 The SELECT would examine more than MAX_JOIN_SIZE rows;检查
我正在使用 PHP 和 MySQL。在我的程序中有一个涉及连接的选择查询。当我在本地主机上运行它时它工作正常但是当我将它上传到我的服务器并尝试执行它时它会生成以下错误: SELECT 将检查超过 MA
有 max_join_size = 300M 的 MariaDB 10.4.14 和里面有大约 150,000 条记录的硬币 InnoDB 表。 一个足够简单的查询会产生 MAX_JOIN_SIZE
当我将 cakephp v3 应用程序部署到共享主机时,出现以下 MAX_JOIN_SIZE 错误: Error: SQLSTATE[42000]: Syntax error or acces
我正在使用 MySQLi Procedural 从 MYSQL 数据库运行查询。我只看到这是如何使用 MySQLi 面向对象代码完成的。 它在本地主机上完美运行,但在远程服务器上我收到一条错误消息,指
我有一个小型非营利组织的捐助者和门票销售信息数据库。我正在尝试根据捐赠、购买季票或购买单程票的人快速导出邮件列表。 “entity”表是联系信息等,然后其他表包含有关捐赠的信息(年份、金额、支票日期等
我的查询遇到了问题...... SELECT keywords.keyword, keywords.keyid, sources.s_title, sources.s_disc, sources.s_
Exception -> string(69) "SQLSTATE[HY000]: General error: 1193 Unknown system variable 'OPTION'" Exce
我是一名优秀的程序员,十分优秀!