【问题标题】:SQLite Select with two conditionSQLite Select 有两个条件
【发布时间】:2016-01-10 05:03:58
【问题描述】:

我正在制作一个酒店预订系统。 我的预订页面有一个 Jcalendar 来选择日期和“显示可用房间”按钮。 选择日期并按下按钮后,表格应显示可用房间。

按钮的代码是

SELECT * FROM RoomInfo WHERE (
    number NOT IN (
        SELECT roomNo FROM Booked
    ) AND "+reportDate+" NOT IN (
        SELECT date FROM Booked
    )
)

numberRoomInfo中的房间号,即Booked中的roomNo

reportDate是yyyyMMdd格式的选取日期的TEXT字符串,Booked中的date也是yyyyMMdd格式。

举个例子

RoomInfo db
-------------
row   number

1     101
2     201
3     301

Booked db
-----------
row   roomNo   date
1     101      20160110

选择日期20160110并且预期的输出为201和301室,但没有任何返回。 选择日期 20160111 时,预期输出为房间 101、201 和 301,但返回的是 201 和 301。

我的查询有什么问题?我是 SQLite 的新手,请随时教我。 谢谢。

【问题讨论】:

    标签: java sqlite


    【解决方案1】:

    您的查询不正确。在您的查询中,第一个条件将自动排除所有房间,因为您从 Booked 表中选择了所有内容。您只想为您指定的日期选择 Booked 房间,因此将日期限制移至第一个 suquery。

    尝试以下方法:

    "SELECT * FROM RoomInfo 
    WHERE number NOT IN (
            SELECT roomNo FROM Booked WHERE date = "+reportDate+"
        )"
    

    【讨论】:

      猜你喜欢
      • 2012-12-12
      • 2016-06-03
      • 1970-01-01
      • 2011-12-30
      • 2012-01-26
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多