Java 从数据库获取状态
我有一个包含id PK、tid FK、lidFK和status Varchar列的表。每个tid都有几个盖子,每个盖子都有一个状态:完成或正在进行 我想获得每个tid的状态,其中tid的状态为:如果tid的所有lid都具有状态“完成”,则tid状态为“完成”;如果任何lid状态为“正在进行”,则tid状态为“正在进行” 以下是我迄今为止所做的工作:Java 从数据库获取状态,java,mysql,Java,Mysql,我有一个包含id PK、tid FK、lidFK和status Varchar列的表。每个tid都有几个盖子,每个盖子都有一个状态:完成或正在进行 我想获得每个tid的状态,其中tid的状态为:如果tid的所有lid都具有状态“完成”,则tid状态为“完成”;如果任何lid状态为“正在进行”,则tid状态为“正在进行” 以下是我迄今为止所做的工作: st2=con.createStatement(); String QueryString2 = "SELECT status from lo_st
st2=con.createStatement();
String QueryString2 = "SELECT status from lo_status where topic_id='"+topicid+"'";
rs2 = st2.executeQuery(QueryString2);
while (rs2.next()) {
status=rs2.getString(1);
}
if(status == null){
status="Pending";
}
else if(status.equals("Finished")){
status="Finished";
}else{
status="Ongoing";
}
执行以下操作
SELECT count(rowid) total from lo_status where topic_id='"+topicid+"' and status="Finished";
如果total=0,则状态为“已完成”,否则状态为“正在进行”。您可以尝试以下查询
Select count(status) As total from lo_status where topic_id='"+topicid+"' and status =ongoing";
if(total>0){
status="OnGoing";
}else
{
status="Finished";
}
如果有任何查询被询问,您可以尝试使用它。为您的表提供一个清晰的模板。如果所有这些列都在一个表中,那么就太容易了,如果有不同的表,那么就让您提供一些关于表的详细信息。这些r只在同一个表中..上面的代码工作正常,我只想知道它完成的tid..您刚刚将tid传递给查询,为什么不使用它呢。如果我的解决方案有效,请标记为已被接受。你想知道它是为哪个tid完成的吗?我有一个想法。您可以将查询放入for循环并检查所有tid。你得到多少,哪个tid完成了。你明白我的意思吗?