There is a LINQ made by sir @ppr but it is only made to match one column.
(From d1 In dt_First.AsEnumerable
Group d1 By k=d1("UID").toString.Trim Into grp=Group
Let mcc = dt_Second.AsEnumerable.Where(Function (d2) d2("UID").toString.Trim.Equals(k)).Count
Where Not (grp.Count = 1 And mcc > 0)
Where Not (grp.Count > 1 And mcc > 1)
Let skipper = Convert.ToInt32(grp.Count > 1 And mcc = 1)
From g In grp.Skip(skipper)
Order By dt_First.Rows.IndexOf(g)
Select r=g).CopyToDataTable
Is this possible to revise with multiple columns between the two data tables? If yes, what should be changed on the syntax?