程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从另一个不带join语句的表中更新一个表(firebird)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从另一个不带join语句的表中更新一个表(firebird)?

开发过程中遇到从另一个不带join语句的表中更新一个表(firebird)的问题如何解决?下面主要结合日常开发的经验,给出你关于从另一个不带join语句的表中更新一个表(firebird)的解决方法建议,希望对你解决从另一个不带join语句的表中更新一个表(firebird)有所启发或帮助;

如下更新查询@H_607_3@ @H_675_4@update elements E set E.END_I = (SELEct first 1 n.node_num from nodes N where (N.XI =E.X_I and N.YI = E.Y_I and N.ZI=E.Z_I) ) where exists (SELEct 1 from nodes N where (N.XI =E.X_I and N.YI = E.Y_I and N.ZI=E.Z_I))

您应该添加,first 1因为firebird 2.1并不知道子查询仅返回一行。@H_607_3@

解决方法

我想根据另一个表的值更新表中的列,我使用的是Firebird
2.1稍旧的版本,因此它在更新执行期间不支持join语句。为了消除这种情况,根据原始firebird常见问题解答http://www.firebirdfaq.org/faq323/中给出的说明,
应遵循以下声明,但它会丢失该列的某些值和值,并返回null,如图所示以下面的数据集表格形式显示。@H_607_3@

例如,Elements表中的Num 21在其END_I列中的值应为23,因为它与节点表具有完全相同的X_I,Y_I和Z_I值,但是上面的语句返回null。@H_607_3@ @H_675_4@update elements E set E.END_I = (SELEct n.node_num from nodes N where (N.XI =E.X_I and N.YI = E.Y_I and N.ZI=E.Z_I) ) where exists (SELEct 1 from nodes N where (N.XI =E.X_I and N.YI = E.Y_I and N.ZI=E.Z_I)) ELEMENTS Num End_I End_J X_I Y_I Z_I 17 18.000000 19.000000 0.000000 1.500000 18.000000 0.000000 1.500000 21.000000 18 19.000000 20.000000 0.000000 1.500000 21.000000 0.000000 1.500000 24.000000 19 20.000000 21.000000 0.000000 1.500000 24.000000 0.000000 1.500000 27.000000 20 21.000000 22.000000 0.000000 1.500000 27.000000 0.000000 1.500000 30.000000 21 [null] 24.000000 2.400000 0.000000 0.000000 2.400000 0.000000 3.000000 22 [null] 25.000000 2.400000 0.000000 3.000000 2.400000 0.000000 6.000000 23 [null] 26.000000 2.400000 0.000000 6.000000 2.400000 0.000000 9.000000 NODES Node_Num XI YI ZI 20 0.000000 1.500000 24.000000 21 0.000000 1.500000 27.000000 22 0.000000 1.500000 30.000000 23 2.400000 0.000000 0.000000 24 2.400000 0.000000 3.000000 25 2.400000 0.000000 6.000000

大佬总结

以上是大佬教程为你收集整理的从另一个不带join语句的表中更新一个表(firebird)全部内容,希望文章能够帮你解决从另一个不带join语句的表中更新一个表(firebird)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。