微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要查询或数据表来查找两个表之间的差异

如何解决需要查询或数据表来查找两个表之间的差异

我在一些产品和另一个带有一些产品的桌子之间有一张桌子。我只想指定两个表之间的不同产品。

table prod a --col prodnama
GH1 cd2 at3

表 prodb --col prodnmb
在 3 cd2

结果 gh1

我想查询 ms access,如果有数据表或用于它,它可以在 Visual Basic.net 上运行

解决方法

这将返回 proda 中所有不在 prodb 中的产品。

Select prodnama 
from proda 
left join prodb
on proda.prodnama = prodb.prodnamb
where prodb.prodnamb is null

这将返回 prodb 中所有不在 proda 中的产品。

Select prodnamb
from prodb 
left join proda
on prodb.prodnamb = proda.prodnama 
where prodb.prodnama is null

如果您想在一个查询中查询 proda 中所有不在 prodb 中的产品以及 prodb 中所有不在 proda 中的产品

Select prodnama as prodnam
from proda 
left join prodb
on proda.prodnama = prodb.prodnamb
where prodb.prodnamb is null
Union
Select prodnamb as prodnam
from prodb 
left join proda
on prodb.prodnamb = proda.prodnama 
where prodb.prodnama is null
,

听起来您的问题有两个部分。 首先您要创建一个“查找不匹配的查询”,然后第二,您要查询 Access,然后将结果加载到 VB.Net 数据表中。以下代码用于VB.Net。更改您的 OLEDB 版本的连接字符串和数据库路径。

您需要安装 MS Access 可再发行组件(免费)。它具有您需要的 ODBC 和 OleDb 驱动程序。

您需要一个连接到 Access 数据库的字符串:

Dim strOleDB As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data" & _
" Source=C:\MyPath\MyDatabase.accdb;Persist Security Info=False;"

还有一个数据集来加载你的表格:

Dim dst As New DataSet()

获取您的 SQL;类似:

strSQL = "Select table1.column_a from table1" & 
" Left Join table2 on table1.column_a = table2.column_a" & _
" Where table2.column_a Is Null"

加载您的数据表:

Dim tblData As DataTable = LoadDataAccess(dst,strSQL,"tmpMyData",strOleDB)

tblData 有你的结果列表。

我通常使用一个函数来返回我的数据表。像这样:

    Function LoadDataAccess(ByVal dstToLoadInto As DataSet,ByVal strSQL As String,ByVal strName As String,strOleDB as String) As DataTable
    Dim cnnAccess As New OleDb.OleDbConnection(strOleDB)
    Dim dptAccess = New OleDb.OleDbDataAdapter(strSQL,cnnAccess)
    Dim tblNew As DataTable
    Try
        dstToLoadInto.Tables.Remove(strName)
    Catch ex As Exception

    End Try
    cnnAccess.Open()
    Try
        dptAccess.Fill(dstToLoadInto,strName)
        tblNew = dstToLoadInto.Tables(strName)
    Catch ex As Exception
        Throw ex
    Finally
        cnnAccess.Close()
    End Try

    Return tblNew
End Function

该视频介绍了如何使用 SQL 比较列表的步骤(对于上面的 strSQL): https://youtu.be/IkrDKdfQmuk

祝你的项目好运!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?