我发布了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数据库。
任何帮助都会感激不尽!这是我的头脑!
答案 0 :(得分:2)
您希望将另一个表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
将永远不会包含未来的时间(例如明天,下个月等),但如果可以,则只需添加:{/ p>
AND b.crm_date_time_column < UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY)
作为WHERE
子句中的另一个条件。
答案 1 :(得分:1)
SELECT c.value
FROM table_c c, table_a a
WHERE c.id IN (9, 17, 25)
AND b.crm_date_time_column >= UNIX_TIMESTAMP(CURDATE())
AND c.id = a.id
GROUP BY c.value
你可以用这样的查询来做。它从两个表中选择行,检查它们是否具有相同的ID,当前日期是table_a,crm_date_time_column。 我不知道你怎么知道哪些行在你的系统中相互链接,所以它检查它们是否具有相同的id。