我有两个表订单表,而order_item表订单项有一个名为order_id的外键订单表
我想选择状态为已取消且总和的order_item.cbs> 0的计数顺序
order table order_item table
************************* **************************************
* id * date * status * * id * status * cbc * cbs * order_id *
************************* **************************************
* 1 * null * CANCELLED * * 11 * * 1 * 0 * 1 *
************************* **************************************
* 2 * null * DELIVERED * * 12 * * 0 * 0 * 1 *
************************* **************************************
答案 0 :(得分:0)
如果您使用的是JDBC,则可以执行以下操作:
public int getOrderInfo(){
Statement stmt = null;
ResultSet results = null;
int queryResult = 0;
try(Connection connection = [your connection here]){
stmt = connection.createStatement();
results = stmt.executeQuery("SELECT COUNT('status') FROM order INNER JOIN order_item ON order.id = order_item.order_id WHERE order.status = 'CANCELLED';");
while(results.next()){
queryResult = results.getInt(1);
}
}catch(Exception e){
e.printStackTrace();
}
return queryResult;
}
,因为它只是您要提交的SQL查询。
答案 1 :(得分:0)
SELECT o.id, o.status, sum(oi.cbs)
FROM order o JOIN order_item oi ON o.id = oi.order_id
WHERE o.status = 'CANCELLED' AND oi.cbs > 0
GROUP BY o.id, o.status
很抱歉,如果我对您的表名的语法不够完美,但这应该是您所需要的。让我知道您是否仍然遇到麻烦。如果现在无法正常工作,则可能需要在子查询中。