具有日期范围的SQL IN运算符

时间:2014-04-21 13:24:17

标签: mysql sql

我试图从table2中的table1中选择table2包含特定的日期范围。我尝试了很多不同的查询;其中一些我收到语法错误,一些日期范围不起作用。

目前:

SELECT DISTINCT f
FROM table1
WHERE f IN(f.table2) as s
WHERE s.time > '2013-01-01 00:00:00' AND s.time < '2013-01-07 00:00:00'
ORDER BY s.time 

这种类型的in语句的正确语法是什么?我看到的所有例子都是:

Select *
From table1
Where x in(table2);

我找不到更深入的例子了。如有需要,请提出任何建议。如果需要,请发表评论以获取更多信息。

enter image description here

1 个答案:

答案 0 :(得分:1)

WHERE子句只能在查询中存在一次,除非它位于SUBQUERY内,要将IN子句与另一个SELECT子句一起使用,您需要遵循以下模式:

SELECT *
FROM TABLE1
WHERE X IN ( SELECT OneColumnOnly FROM Table2)
  AND TIME BETWEEN '1/1/2012' AND '1/1/2013'

TABLE1中的列X必须与TABLE2中的OneColumnOnly类型相同,或者隐式转换为INTVARCHAR