2016-03-25 26 views
-1

startD bir tarihtir ve endD bir tarihtir ve tip Bu benim hatadırSQL deyimindeki sorun nedir?

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

bir dizedir:

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

Biraz kafam karışık, ne yapmaya çalışıyorsun? RoomID'nin iki tarih arasında olup olmadığını kontrol edin. Bence, "WHERE booking.date BETWEEN ..." gibi bir şey olabilirsiniz. –

+0

Kullanıcı demek istediğim 2 tarih; startD ve endD. Sql ifadesi, sonuçların kullanıcının girdiği tarihler arasında olduğu ve sonuçların kullanıcının belirttiği boyuta eşit olduğu bir sonuç kümesi döndürür. –

+0

Evet, ancak rezervasyonun tarihi nerede saklanır? Veritabanındaki hangi alanın iki tarih arasında olması gerektiğini asla söylemezsin. –

cevap

0

Madde

arasındaki AND içinde, Between Clause

yerine manuel bakınız

+0

'un tam kopyası aynı hata hala görünmektedir –

0

SQL ifadesi doğru değil, şu şekilde olmalıdır: String sqlStatement = "SELECT Booking. * FROM Rezervasyon INNER JOIN Room KULLANIMI (RoomID)" + startD + "VE" + endD + "ARASINDAKİ" someDateColumn "VE AND RoomSize =" + type;

+0

Tablonumda bir başlangıç ​​ve bitiş tarihi sütunum var. ne dahil edeceğimi bilmediğim gibi someDateColumn gibi bir sütun değil. –

+0

Daha sonra, bazıDateColumn yerine bunlardan birini koymalısınız, ör. String sqlStatement = "SELECT Booking. * FROM Rezervasyon INNER JOIN Room KULLANIMI (RoomID)" + startD + "VE" + endD + "ARASINDA startDate VE AND RoomSize =" + type; – nomadus

+0

Yardım için teşekkürler. ama hala bir hata alıyorum: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Bilinmeyen sütun 'Orta' içinde 'cümlede –

0

sözdizimi yanlıştır:

biri aşağıda deneyin:

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

Sen eksik WHERE yan tümcesi, aynı zamanda, bir eksik VE zaman gerekli olan (bunun yerine bir virgül koyduk) BETWEEN anahtar sözcüğünü kullanarak bir aralık sağlarsınız.

+0

çalışmıyor –

+0

Tablolarınızın şemasında hata iletisiyle birlikte yayınlayabilir misiniz? –