sql混乱LEFT JOIN = BETWEEN

时间:2011-02-13 14:06:59

标签: php sql

是否可以在左连接中使用BETWEEN和'='检查值?像这样......

 LEFT JOIN abc 
        ON abc.date = BETWEEN $a AND $db

此查询无效:(。某个解决方案?

2 个答案:

答案 0 :(得分:1)

您正在寻找的语法是:

 LEFT JOIN abc 
    ON abc.date BETWEEN $a AND $b

IE中。您需要删除=

答案 1 :(得分:0)

之间没有等号。我不太了解PHP,但SQL通常希望日期采用适当的格式,通常为YYYY-MM-DD,而某些DBMS也会接受其他格式,例如MM / DD / YYYY,能够识别它们。

请注意,a和abc表之间没有实际连接,因此,对于'a'中的每个寄存器,SQL将包含'abc'中的所有列,但没有记录。您必须使用以下内容实际加入表:

select    *
from      a
left join abc
on        a.ID = abc.ID
and       abc.date between '$a' and '$db'

您可以按任何条件阻止过滤,但您必须加入表格。不同的是,当左表(a)和右表(abc)之间没有匹配时,右边的数据将在结果中显示为NULL。

希望它有用并且有用。