Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        5年前关闭。
                                                                                            
                
        
我试图从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);


我找不到更多深入的示例。任何建议表示赞赏,如有需要,请发表评论以获取更多信息。

最佳答案

一个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那样隐式转换为它

关于mysql - 带日期范围的SQL IN运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23198351/

10-11 04:50