回 帖 发 新 帖 刷新版面

主题:SQL 比较两表记录差的查询语句的问题

需求:
    现有两个数据库A和B A库中有表ATabel B库中有表BTable 两表数据结构是相同的,主键为一个编码字段SPBM ATabel是ERP软件的某一数据表 经常在更新 而BTable做为网站数据表 需要把ATable的数据导入过来
    请问 如何让查询来判断 BTable已经从ATable中导入的数据 就不需要再次添加入BTable 即如何获得两表的数据差?
    
    例如 
    ATable
    -------------------------------------
    SPBM   A    B   
    1000   A10  B10
    1100   A11  B11
    1200   A12  B12


    BTable 
    --------------------------------------
    SPBM   A    B
    1000   A10  B10
    1100   A11  B11

    查询语句应该得到的记录集是 1200 A12 B12(一般情况下 BTable 的记录集小于等于 ATable表的记录集)

    自己想过用循环来实现 ,但对于多次查询操作比较耗费时间 以后ATable数据记录将不断增长 程序的执行效率当然会变的很低 所以想问问大家有没有好的查询 或者存储过程的方法来解决.

回复列表 (共1个回复)

沙发

看来问的有点急了.
经查找资料 目前暂已经解决该查询问题 参考语句如下 
SELECT A.dbo.ATable.SPBM 
FROM A.dbo.ATable
WHERE A.dbo.ATable.SPBM not in
(
 SELECT B.dbo.BTable.SPBM 
 FROM B.dbo.BTable
)

接下来的任务就是在VB里实现和在实际问题中的效率分析和优化.
大家是否有更为优化的查询可以发给我参考参考 探讨探讨

我来回复

您尚未登录,请登录后再回复。点此登录或注册