2016-03-25 2 views
-1

startD文字列SQL文には何が問題なのですか?

String sqlStatement = "SELECT Booking.* FROM Booking INNER JOIN Room USING (RoomID) BETWEEN " + startD + ", " + endD+ " AND RoomSize = " + type; 

である。これは私の誤りである日付で、endDは、日付とタイプです:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN 2016-03-01, 2016-03-01 AND RoomSize = Medium' at line 1 
+1

私はちょっと混乱しています。あなたは何をしようとしていますか? RoomIDが2つの日付の間にあるかどうかを確認しますか?私は、あなたが 'どこで予約するのか? 'のようなものを意味するかもしれないと思います。 –

+0

私が意味することは、ユーザーが2つの日付を選択することです。 startDとendD。 sqlステートメントは、結果がRoomSizeがユーザーが指定したサイズと同じである間にユーザーが入力した日付の間にある結果セットを返します。 –

+0

はい、予約の日付はどこに保存されていますか?データベース内のどのフィールドが2つの日付の間にあるべきかは決して言わない。 –

答えて

0

は手動Between Clause

を参照してAND句の間で、交換してください

+0

同じエラーがまだ表示されます –

0

SQL文が正しくない場合は、次のようになります。String sqlStatement = "SELECT booking。* FROM booking INNER JOIN Room USING(RoomID)どこのどこかで" + startD + "AND" + endD + "AND RoomSize =" + type;

+0

私は自分のテーブルにstartdateとenddateカラムを持っています。 someDateColumnのような列ではなく、私はそれに何を含めるべきかわかりません。 –

+0

代わりにsomeDateColumnを使用してください。文字列sqlStatement = "SELECT予約。* FROM予約INNER JOINルームUSING(RoomID)どこからstartDate" + startD + "AND" + endD + "AND RoomSize =" + type; – nomadus

+0

助けてくれてありがとう。しかし、私はまだエラーが発生しています:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:不明なカラム 'Medium' in 'where句 –

0

構文が間違っている:

1未満にしてみてください。

String sqlStatement = "SELECT Booking.* FROM Booking INNER JOIN Room USING (RoomID) WHERE BETWEEN " + startD + " AND " + endD+ " AND RoomSize = " + type; 

あなたが欠落しているWHERE句、また、あなたが欠落しており、ときに必要とされている(あなたの代わりにコンマを入れています) BETWEENキーワードを使用して範囲を指定します。

+0

これは動作していません –

+0

エラーメッセージと共にテーブルのスキーマに投稿できますか? –

関連する問題