Foxtable(狐表)用户栏目专家坐堂 → 求一段找出表B Not in 表A的行的代码


  共有2001人关注过本帖树形打印复制链接

主题:求一段找出表B Not in 表A的行的代码

帅哥哟,离线,有人找我吗?
chen3728060
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
求一段找出表B Not in 表A的行的代码  发帖心情 Post By:2017/2/12 17:44:00 [显示全部帖子]

我有2个商品条码库,表A是98w条,表B是55w条。表A包含了表B所有的条码。(这2个商品条码库架构一样,只有一列,就是ItemID,而且条码不重复,是别人给我的,一个是2017年的,一个是2009年的,所有相差了这么多)

 

我想问下,假如在不直接写 sql语句的情况下,能利用狐表的工具(例如 SqlJoindatatable, sqlGroupDatatable之类),提取出表A比表B多的43w条码吗?

 

千万不要想下面这种,那个string已经爆了,装不下几十万条条码。而且效率也low爆了

Dim s As String = DataTables("表B").SQLGetComboListString("ItemID")
s= "('" & s.Replace("|","','") & "')"


Dim drs As List(of DataRow)  = DataTables("表A").SQLSelect("ItemID not in " & s )

 

求一段提取出表A比表B多的43w行的代码,效率不要太差即可,不要求极致优化图片点击可在新窗口打开查看~谢谢

[此贴子已经被作者于2017/2/12 17:46:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chen3728060
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
回复:(有点色)直接写即可?Dim drs As Lis...  发帖心情 Post By:2017/6/30 20:46:00 [显示全部帖子]

我看网上有好多讨论sql  in 和 exists 效率的问题,都说in 和not 是全表检索,会很卡之类的,但是刚才这个not in的语句确实很直观,

 

DataTables("表A").SQLSelect("ItemID not in (select ItemID From {表B})")

 

会不会效率很差的?还是狐表已经优化好检索代码了?

[此贴子已经被作者于2017/6/30 20:47:08编辑过]

 回到顶部