Сравнение таблиц по столбцам - MySQL
Формулировка задачи:
Есть две таблицы вида как на фото. Требуется во второй таблице найти значение совпадающие с первой по ord_id и marka столбцы обоих таблиц скомпоновать в одну. Помогите, пожалуйста, как это сделать?
Решение задачи: «Сравнение таблиц по столбцам»
textual
Листинг программы
//Создаю 2 таблицы с 4-мя колонками
DataSet ds = new DataSet("DB");
DataTable dt1 = new DataTable("DT1");
DataTable dt2 = new DataTable();
DataColumn dc1 = new DataColumn("Id", typeof(System.Int32));
DataColumn dc2 = new DataColumn("Col1", typeof(System.String));
DataColumn dc3 = new DataColumn("Col2", typeof(System.String));
DataColumn dc4 = new DataColumn("Col3", typeof(System.String));
dt1.Columns.AddRange(new[] { dc1, dc2, dc3, dc4 });
dt2 = dt1.Clone();
dt2.TableName = "DT2";
ds.Tables.AddRange(new[] { dt1, dt2 });
dt1.Rows.Add(1, "aa", "bb", "cc");
dt1.Rows.Add(2, "bb", "cc", "dd");
dt1.Rows.Add(3, "cc", "dd", "ee");
dt1.Rows.Add(4, "dd", "ee", "ff");
dt2.Rows.Add(1, "aa", "bb", "cc");
dt2.Rows.Add(2, "bb", "cc", "dd");
dt2.Rows.Add(4, "dd", "ee", "ff");
dt2.Rows.Add(5, "aa", "bb", "cc");
//Делаю LINQ запрос на объединение
var result = dt1.AsEnumerable().Join(dt2.AsEnumerable(),
(x) => x[0].ToString() + x[1].ToString(),
(x) => x[0].ToString() + x[1].ToString(),
(x, y) => new { Col1 = x[0], Col2 = x[1], Col3 = x[2], Col4 = x[3], Col5 = y[2], Col6 = y[3] });
//Вывожу результат
foreach (var item in result)
{
Console.WriteLine($"{item.Col1}\t{item.Col2}\t{item.Col3}\t{item.Col4}\t{item.Col5}\t{item.Col6}");
}
Объяснение кода листинга программы
- Создаются две таблицы (
dt1иdt2) с четырьмя столбцами каждая. - Заполняются данными.
- Делается LINQ запрос на объединение таблиц по двум столбцам.
- Результат выводится на консоль.