0

次のSQLクエリを使用していますが、エラーが発生し続けます

SQL 構文にエラーがあります。near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

SELECT roomID 
FROM rooms 
WHERE
 roomID NOT IN (
   SELECT t1.roomID 
   FROM
    rooms t1 
    INNER JOIN reservations t2 ON t1.roomID = t2.roomID 
    INNER JOIN reservationdetails t3 ON t2.resDeID = t3.resDeID 
   WHERE NOT ('2013-01-13' < t3.arrival OR ('2013-02-03' > t3.departure)
  )

私はあまり優れたSQLプログラマーではありません..SQLについてたくさん読んだ後、すべてを行いました..

誰かがここで何が間違っているかを理解できれば、大きな助けになるでしょう..

前もって感謝します..

4

4 に答える 4

2

少なくとも、あなたが行方不明のようです)

于 2013-01-05T22:53:31.407 に答える
0

開いているすべてのブラケットを常に閉じる必要があります。

SELECT roomID 
FROM rooms 
WHERE
 roomID NOT IN (
   SELECT t1.roomID 
   FROM
    rooms t1 
    INNER JOIN reservations t2 ON t1.roomID = t2.roomID 
    INNER JOIN reservationdetails t3 ON t2.resDeID = t3.resDeID 
   **WHERE NOT ('2013-01-13' < t3.arrival OR ('2013-02-03' > t3.departure)**
  )

以下の not と or like の間の括弧を削除できます

 WHERE t3.arrival >= '2013-01-13'   OR t3.departure <= '2013-02-03'

または、ブラケットをもう 1 つ追加します。

 WHERE NOT ('2013-01-13' < t3.arrival OR ('2013-02-03' > t3.departure))
于 2013-01-06T00:46:54.813 に答える
0

あなたの問題はここにあります

 WHERE NOT ('2013-01-13' < t3.arrival OR ('2013-02-03' > t3.departure)

そのようにしてみてください

 WHERE t3.arrival >= '2013-01-13'   OR t3.departure <= '2013-02-03' 
于 2013-01-05T22:54:03.667 に答える