我正在尝试使用java做的是:
- 访问数据库
- 从表“Target_stats”中读取记录
- 如果字段“threat_level”= 0,doAction1
- 如果字段“threat_level”> 0,则从另一个表“Attacker_stats”和 doAction2 中获取附加字段
- 读取下一条记录
现在我拥有了我需要的一切,但经过深思熟虑的 SQL 语句只允许我只通过数据库一次,如果这不起作用我怀疑我将需要使用两个单独的 SQL 语句并再次通过数据库. 我对 case 语句没有清楚的理解,所以我只提供使用 if 语句的伪代码。
SELECT A.1, A.2, A.3
if(A.3 > 0){
SELECT A.1, A.2, A.3, B.1, B.3
FROM A
JOIN B
ON A.1 = B.1
}
FROM A
任何人都可以了解我的情况吗?
编辑:谢谢你们的时间和精力。我理解你的两个评论,我相信我正朝着正确的方向前进,但是,我仍然遇到了一些麻烦。我以前不了解 SQLfiddle,所以我现在继续制作了一个示例数据库并试图证明我的目的。这是链接:http : //sqlfiddle.com/#!3/ea108/1 我在这里要做的是选择 target_stats.server_id, target_stats.target, target_stats.threat_level where interval_id=3 and if thethreat_level>0 I要检索attack_stats.attacker,attack_stats.sig_name 其中interval_id=3。再次感谢您的时间和精力,这对我非常有用
编辑:经过一番修修补补,我想通了。非常感谢你的帮助