我发布了 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
到第一个表(我假设另一个表中的 id
与 table_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/