我如何使用"选择"对于带有"不在(子查询)中的数据表"

时间:2015-11-19 11:55:26

标签: mysql vb.net datatable

我想在数据表dt1上执行此查询:

select * from dt1 where col1 NOT IN(select col1 from dt2)

这里是测试代码:

Sub Main()
    Dim dt1 As New DataTable
    Dim dt2 As New DataTable
    Dim dt3 As New DataTable
    dt1.Columns.Add("col1")
    dt1.Columns.Add("col2")
    dt1.Columns.Add("col3")
    dt1.Rows.Add("1", "a", "a")
    dt1.Rows.Add("2", "b", "b")
    dt1.Rows.Add("3", "c", "c")
    dt1.Rows.Add("4", "d", "d")
    dt1.Rows.Add("5", "e", "e")

    dt2.Columns.Add("col1")
    dt2.Columns.Add("col4")
    dt2.Columns.Add("col5")
    dt2.Rows.Add("1", "a", "a")
    dt2.Rows.Add("2", "f", "f")
    dt2.Rows.Add("3", "g", "g")

    dt3.Columns.Add("col1")
    dt3.Columns.Add("col2")
    dt3.Columns.Add("col3")

    'Dim rows() As DataRow = dt1.Select("dt1.select(columns(0)) Not In (dt2.select(cloumns(0)))")

End Sub

1 个答案:

答案 0 :(得分:0)

查看Enumerable.Except方法。例如:

dt2.AsEnumerable.Except(dt1.AsEnumerable, DataRowComparer.Default)

取决于您的考虑因素"不在Dt2"您可能需要定义自定义IEqualityComparer

相关问题