在两个日期之间使用CAST而不是IN

时间:2016-02-05 21:02:34

标签: php mysql

以下查询无法正常运行。

我正在尝试查看两个表格,并希望返回所有没有与预先存在的预订的到达和离开日期相关的预订的propertyID。

我觉得我应该使用某种类型的JOIN(尝试引用this StackOverflow post),但我不确定这是我需要利用的......

在研究中,我一直试图这样做(但这并不准确)。任何人都可以推荐或分享更好的方法来执行此查询以获得我想要的结果吗?

$btQuery = "
     SELECT * FROM properties 
     WHERE pID NOT IN (
          SELECT pID 
          from property_booking 
          WHERE pbDateArrive BETWEEN CAST('".$_GET['aaDate']."' AS DATE) 
                                 AND CAST('".$_GET['adDate']."' AS DATE) 
          OR    pbDateDepart BETWEEN CAST('".$_GET['aaDate']."' AS DATE) 
                                 AND CAST('".$_GET['adDate']."' AS DATE))";

非常感谢任何帮助。

在回复中检查GET参数是如何进行CAST的:这是回显:

SELECT * 
FROM properties 
WHERE pID NOT IN (
    SELECT pID 
    from property_booking 
    WHERE pbDateArrive BETWEEN CAST('2016-02-05' AS DATE) 
                           AND CAST('2016-02-12' AS DATE) 
    OR    pbDateDepart BETWEEN CAST('2016-02-05' AS DATE) 
                           AND CAST('2016-02-12' AS DATE))

0 个答案:

没有答案