Объедините две таблицы данных с общим столбцом c# - PullRequest
0 голосов
/ 19 июня 2020

У меня есть две таблицы, как показано ниже Table1

   IntervalID(pK)
       1
       2
       3

Table 2

IntervalID  Name
1           XXX

Результат должен быть (Table1 + Table2)

IntervalID  Name
1           XXX
2          NULL
3          NULL

Я сделал как показано ниже

Table1.Merge(Table2);

Но это не дает желаемого результата

1 Ответ

2 голосов
/ 19 июня 2020

Вы можете добиться этого, используя Left join , как следующий код:

var result = (from t1 in table1
              join t2 in table2 on t1.IntervalId equals t2.IntervalId into leftedResults
              from leftedResult in leftedResults.DefaultIfEmpty()
              select new { t1.IntervalId, Name = leftedResult?.Name }).ToList();

Обратите внимание, что вы не можете объединить две таблицы DataTable, которые не имеют одинаковых схем.

Левое соединение для таблиц данных:

var result = (from t1 in dataTable1.AsEnumerable()
          join t2 in dataTable2.AsEnumerable() on t1.Field<int>("IntervalId") equals t2.Field<int>("IntervalId") into leftedResults
          from leftedReult in leftedResults.DefaultIfEmpty()
          select new { IntervalId = t1.Field<int>("IntervalId"), Name = leftedReult?.Field<string>("Name") }).ToList();

Надеюсь, вы найдете это полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...