给客户交货时遇到错误!急急急急急急急急急急急!!!!求高手指点(没有多少分了,请谅解)
小弟有一个麻烦,恳求高手指点
String sql= "select OrderForm.OrderFormId,OrderForm.OrderFormTime,orderform.DeliverDate from OrderForm,customer "
+ " where customer.CustomerId= ' "+customerinfo.CustomerId+ " ' and customer.CustomerId=Orderform.CustomerId "
+ "and OrderFormId not in (select OrderFormId from ShoppingList where IfCheck=1 group by OrderFormId) ";
这个语句是个包含子查询的sql语句,小弟在mysql5.0下没有问题,但由于要上传到
服务器上,服务器上的版本是4.0.2,不支持子查询,所以恳求高手将以上sql改成两句单查询,可能
要用到while(rs.next())等
我要实现的功能就是一个订单可以对应多道菜,如果有一道菜开始做了,那么这个订单就无法退订了
以上语句意思是选出那些每道菜都没有开始做(ifcheck=1表示该菜开始做了)的订单,因为这些订单可以让客户退订,
OrderForm.OrderFormId 订单表中的订单ID
OrderForm.OrderFormTime 订购时间
orderform.DeliverDate 送餐时间
OrderForm 订单表
customer 客户信息表
customerinfo.CustomerId 客户的id号,该信息放在类customerinfo中
ShoppingList 快餐订购表,该表中每个订单可以对应多道菜
ifcheck=1 表示订单中的一道开始做了 ,0就表示没有开始做
select OrderFormId from ShoppingList where IfCheck=1 group by OrderFormId就表示
选出那些不可以退订的订单号
------解决方案--------------------把服务器上的mysql也换成mysql5.0不就行了.
------解决方案--------------------String commandSQL = "select OrderFormId from ShoppingList where IfCheck=1 group by OrderFormId "
excuteQuery(commandSQL)
String noOrder = " ";
while(rs.next()) {
noOrder += noOrder + " ' " + rs.getString( "OrderFormId ") + " ', " ;
}
String sql= "select OrderForm.OrderFormId,OrderForm.OrderFormTime,orderform.DeliverDate from OrderForm,customer "
+ " where customer.CustomerId= ' "+customerinfo.CustomerId+ " ' and customer.CustomerId=Orderform.CustomerId "
+ "and OrderFormId not in (noOrder.substirng(0,noOrder.length - 1)) ";
不知道能不能满足你