mysql - SQL (MySQL) 第 2 部分中基于今天日期的查询返回结果

标签 mysql sql inner-join where-clause

我发布了 another question这已得到完美解决,但我现在需要将我获得的相同代码应用到另一段 MySQL 代码。

我有的是

SELECT value, COUNT(*) AS 'num' 
FROM table_c 
WHERE table_c_id IN (9, 17, 25)
GROUP BY value

我现在想做的是只显示在当前日期输入的结果吗?

我用于检查当前日期的当前代码片段非常有效(日期采用 unixtime 格式)

( xxxxxxxxxxxxxx and curdate() = date( from_unixtime( b.crm_date_time_column ) ) )

我在查询时遇到的问题是日期列位于完全不同的表 table_a 中。

我如何编写 MySQL 来检查 table_a 的日期并应用我现有的日期 SQL?

这是一个 MySQL 数据库。

任何帮助将不胜感激!这让我难以理解!

最佳答案

您首先要使用相关列将另一个表 JOIN 到第一个表(我假设另一个表中的 idtable_c_id 相关)。

正如我在 answer 中所说的那样对于您之前的问题,您最好在裸日期时间列上进行比较,以便查询保持可搜索(即能够利用索引):

SELECT     a.value
FROM       table_c a
INNER JOIN table_a b ON a.table_c_id = b.id
WHERE      a.table_c_id IN (9,17,25) AND
           b.crm_date_time_column >= UNIX_TIMESTAMP(CURDATE())
GROUP BY   a.value 

这假设 crm_date_time_column 永远不会包含 future 的时间(例如明天、下个月等),但如果可以的话,您只需添加:

AND b.crm_date_time_column < UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY)

作为 WHERE 子句中的另一个条件。

关于mysql - SQL (MySQL) 第 2 部分中基于今天日期的查询返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11495713/

相关文章:

mysql - 想在 mysql 结果中获取所有日期

mysql - 为什么Mysql JOIN查询-完整扫描不使用索引

sql - 如何在 SQL Server 中将日期时间格式化为 M/D/YYYY?

mysql - 选择所有匹配的行但只显示最新的

MYSQL INNER JOIN 其中一行不存在属性

php - MySQL 在 CodeIgniter 中两次连接同一个表中的两个不同列

mysql - CakePHP 3.x - 跨多个表保存关联数据

php - 当我尝试绑定(bind)值(甚至准备语句)时,为什么这个 SQL 查询返回 false?

sql-server - 如果查询中包含内联接,为什么左联接会变成内联接?

mysql ->、<、<>、= 内部连接条件的运算符