计算值的MySQL连接表

标签 mysql

我不确定这是否可行,但可以。

我正在使用 MySQL 并需要完成一条语句,该语句会产生如下输出。

我有一个表,其中包含一个完成日期字段和一个查询日期字段。

我需要获取这些字段之间的时差数据,我有以下代码

SELECT DATE (completedate) - DATE (enqdate) AS `timediff`, COUNT(*) AS TotalCount
FROM cia_enquiry
WHERE (DATEDIFF(CURDATE(), enqdate) < 30) AND completedate > 1
GROUP BY `timediff`
ORDER BY `timediff` ASC

上面的代码只是输出日期之间的天数和过去 30 天内的整体总数(不计算那些不完整的条目)

我现在需要针对另一个表引用“timediff”结果并从该表中提取另一个字段。

比如timediff = 1,那么我们需要在另一个表中找到1的id,并从这个表中返回描述字段。

最终我们应该得到类似于

的东西

timediff TotalCount 描述
0 52 24 小时内
1 13 24-48 小时
等等等等…………

最佳答案

这是可以做到的;你有两个选择

  1. 使用您的查询结果创建一个临时表,然后将此表与您的第二个表连接
  2. 将您的第一个查询用作子查询并将其与您的第二个表连接

选项 1

create temporary table temp_tbl
select
   ...
;
# Important: create the indexes you need
alter table temp_tbl
   add index index1(field1), ... ;
# Now join your second table
select a.*, b.*
from temp_tbl as a join tbl2 as b on ...;

选项 2

select a.*, b.*
from (
    select ... # here is your query
    ) as a join tbl2 as b on ...

希望对你有帮助

关于计算值的MySQL连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972739/

相关文章:

php - php中csv文件中的SQL Select语句

php - 使用 cookie 强制登录 phpMyAdmin

python - MySQL 连接器 - 连接被主机强制关闭

mysql - 是否可以指示 libmysqld(嵌入式 MySql 数据库引擎)使用内存数据库?

sql - Sql Server 的@@Identity 和@@error 的mysql 等价物是什么以及如何在mysql 中使用try catch

mysql - 如何对mysql中的值进行多次检查

mysql - 如何在按周分组的mysql查询中以数组形式返回每周数据?

php - MySQL:使用相同连接对象的多个查询

mysql - Cx-卡住 : Showwarning AttributeError: 'NoneType' object has no attribute 'write'

php - 解析2个表的数据