【发布时间】:2019-06-24 01:58:47
【问题描述】:
在我的 java 代码中,我有 foreach 循环,它通过列表进行迭代
foreach(MyObject obj:list){
String status = obj.getStatus();
String is = obj.getId();
// DB call
1. To update Status in Table A
jdbcobj.updtastatus(status,id);
2. Get status from table B
String tableBStatu= jdbcobj.getstatufromtableB(status,id):
obj.setStatus(tableBStatus):
}
为了避免在 for 循环中调用 2 dB,我正在使用内部连接并尝试实现与上述相同的输出
我正在使用内部连接并根据公共字段获取新的结果集。我想更新结果集但我无法弄清楚如何?
我有两个表“A”和“B”。
表“A”有列 id,name,statusA
表“B”有列 id,city,statusB
如开头所述,我使用的是内部连接,我的查询看起来像这样。
Select A.id A.statusA,B.statusB FROM A INNER JOIN ON B where A.id=B.id
Which gives me result as "id", status from table "A" and status from table "B".
现在我想使用内部连接结果,更新表“A”中的 statusA 列并设置值 =“DONE”
并且想在java对象中使用statusB列的值。
String statusfromColumnB = get statusB col value
并像这样在我的 java 对象中设置
myObj.setStatus(statusfromColumnB)
样本数据
提出解决方案。
【问题讨论】:
-
我认为样本数据和期望的结果会很有帮助。
-
你试过
UPDATE ( Select A.id A.statusA,B.statusB FROM A INNER JOIN ON B where A.id=B.id ) SET statusA = statusB吗?如果满足某些条件,那么类似的东西就会起作用。 -
@GordonLinoff 示例数据已更新。
标签: sql oracle join oracle11g inner-join