2012-09-12 84 views
0

在vb.net我有兩個數據表dt1dt2。兩者都只有一列。查詢兩個數據表

現在我需要另一個表dt3,它應該有dt1的行在dt2中不存在。

我試圖與LINQ做:

Dim results = From table1 In dt1 
       Join table2 In dt2 On table1(0) Equals table2(0) 
       Select table1(0) 

但這隻返回匹配。但我需要相反的行(dt2中沒有行)。

有沒有可能沒有LINQ?

+1

此前文章解釋如何做到這一點的SQL:http://stackoverflow.com/questions/8165534/select-rows-not-in-another-table-sql-server - 查詢 –

+0

謝謝,但我需要在VB.NET – Olivarsham

+1

VB.net是**不是**數據庫引擎或接口,你使用別的東西(如SQL)從VB.net連接到數據庫 你問過關於做它**沒有** LINQ。我給你指出了答案。如果你**做**想用LINQ來做這個嘗試讀取它也http://msdn.microsoft.com/en-us/library/bb386976.aspx –

回答

1

據我所知,你不需要連接(因爲你只選擇第一個表中的行)。您可以使用LINQ查詢像

From table1 In dt1 _ 
Where Not (From table2 In dt2 Where table2(0) = table1(0)).Any() _ 
Select table1(0) 
+0

它的拋出錯誤:「重載解析失敗,因爲沒有可訪問的'字符'接受這些參數。「 – Olivarsham

+0

我的不好。給出正確的數據類型。改變了。現在它工作正常。謝謝 :) – Olivarsham