2014-01-22 65 views
0

我有两个相同的表,它由3个字段组成:ID,TID和ITEM。 ID作为主键,TID标识ITEM组。每个TID可以有不同数量的ITEM。vb.net比较两个表,将结果插入新表

我想的2个相同的表与每一个状态分组由ITEM TID表1通过TID表2中比较喜欢

  1. 检查,以每个分组ITEM

    如果表1。分组项目存在多达N的表2,将通过查询INSERT SELECT

    例如在屏幕截图被插入到新表,C - F -A具有表2 3个OCCURENCES,从而它们将被插入到新表..

可以使用mysql查询来完成吗?

我已经尝试过这种使用程序通过填充两个表分为两个二维数组,比较它们与简单IF CLAUSE,得到了理想的结果..它运作良好..

但问题是,当我使用巨大的数据库,它需要荒谬的时间来完成..

当我比较第一个2D数组(table1与2k记录)和第二个数组(table2与870记录),它需要2个小时才能完成!

这是实际的数据库

enter image description here

而这一次是我已经尝试过,填充双表格上方成二维数组..同时与表中的记录分配二维数组,我还包括所述IF CLAUSE,以检查是否第一2D阵列的元件具有第二二维数组ñOCCURENCES,所述INSERT SELECT查询将被执行..

enter image description here

黄色在上述第一2D阵列阻挡节点COL,将Ë插入新的表,因为它具有在第二2D阵列3个OCCURENCES,

数3从用户输入

来源,但因为我使用数据库对象无论如何,它花费我一个昂贵的性能和时间,我也使用vb.net 2005

我相信有这个问题的替代方法..你能告诉我如何方法?使用MySQL查询或其他方法可以执行比我试过的更快?

最好的问候,谢谢..

回答

0

使用LINQ它做的所有MySQL QUARE。你可以在msdn上找到很棒的文档。只需使用mysql服务器构建数据库并使用linq或实体,它们都将为您执行所有命令。这样,你可以做数据绑定和保存该信息,并拉它或任何如果你有更多quesiton我有一个在c#中的代码副本,使用表的联系信息我可以看到你

这是一个链接到GitHub包含使用LINQ https://github.com/psychotiic/WebContactAppUsingLinq.cs

+0

thx为答案先生。我忘了提及,但是我对linq并不擅长,因为它对我来说是新的,甚至现在我正在使用vs 2005。所以,请你在LINQ旁边建议我另一个解决方案吗? thxü –

0

C#版本,你将能够使用LINQ与我提供的,即使它的C#代码它会很容易弄清楚,如果没有,你可以找到大量的C# - VB代码免费更换网页。

+0

我真的很感激你的答案兄弟,包括代码......但我仍然使用的是不支持LINQ的vb 2005 ..并且升级到更高版本的vs对我来说是一个很大的工作,因为我的项目解决方案已经很大。恐怕升级VS会使我迄今为止所做的所有代码都出错。 –

+0

然后制作代码的副本,然后升级它,我确定你会得到一个或两个错误,因为有更好的方式和最喜欢新的图书馆做的事情没有你已经使用的所有代码。我确定你可以通过使用.net 4.0或4.5来戏剧化地压缩项目大小 – user3224148