MySQL在日期之间选择空值

时间:2018-12-17 08:00:10

标签: mysql

我有一个Sp从表中选择一些值,并且有一个左外部联接,联接的条件是相对于from和to日期进行选择。

我需要选择这两个日期的黑白数据。

这是零件的外观

SELECT *// all the needed columns
 FROM  mytable            
     //other joins   
     LEFT OUTER JOIN myview ON              
        //some conditions         
        myview .soldDate between @fromdate and @todate    

选择工作正常,它只选择那些日期前后的数据,但还选择空日期。

enter image description here

如何避免选择这些空值?

2 个答案:

答案 0 :(得分:1)

您可以尝试在where而不是on中设置条件,因为您使用的是outer join

SELECT *// all the needed columns
 FROM  mytable            
     //other joins   
     LEFT OUTER JOIN myview ON              
        //some conditions         
WHERE 
    myview.soldDate between @fromdate and @todate   

或者仅使用INNER JOIN代替LEFT OUTER JOIN

答案 1 :(得分:0)

排除联接中没有soldDate

的行
SELECT * -- all the needed columns
FROM mytable
--other joins
LEFT OUTER JOIN myview ON -- conditions
        (myview.soldDate IS NOT NULL AND myview.soldDate between @fromdate and @todate

您的问题并未解释为什么soldDateNULL。这可能是由于LEFT JOIN造成的,也可能是设计使然。

如果是第一个,只需使用INNER JOIN。如果是设计使然,请使用上面的查询。