Java 内部联接查询中的MySQL语法错误1064

Java 内部联接查询中的MySQL语法错误1064,java,mysql,syntax-error,Java,Mysql,Syntax Error,我在使用下面的SQL查询,但我一直得到错误 您的SQL语法有错误;查看与您的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 t

我在使用下面的SQL查询,但我一直得到错误

您的SQL语法有错误;查看与您的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的文章之后,我做了所有这些

如果有人能找出这里出了什么问题,那将是一个很大的帮助

提前谢谢

你错过了一次收盘

改变

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

你错过了闭幕式

改变

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


看起来,至少,你错过了

看起来,至少,你错过了

你的问题就在这里

 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' 
你的问题就在这里

 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' 

你应该总是关闭所有打开的括号,好像你错过了一个

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和之间的括号,或类似下面的内容

 WHERE t3.arrival >= '2013-01-13'   OR t3.departure <= '2013-02-03'
或者再加一个括号

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

你应该总是关闭所有打开的括号,好像你错过了一个

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和之间的括号,或类似下面的内容

 WHERE t3.arrival >= '2013-01-13'   OR t3.departure <= '2013-02-03'
或者再加一个括号

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

看起来您在OR'2013-02-03>t3之后错过了另一个结账。离开看起来您在OR'2013-02-03>t3之后错过了另一个结账。离开如果不是a或b,则等同于其中不是a**和**不是b,如果不是a或b,则等同于其中不是a**和**不是b。。非常感谢大家!!!看起来很糟不睡觉让我错过了。。再次感谢大家!!倒霉。。非常感谢大家!!!看起来很糟不睡觉让我错过了。。再次感谢大家!!