Сравнение таблиц по столбцам - 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 запрос на объединение таблиц по двум столбцам.
- Результат выводится на консоль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д