Я не могу понять никакой логики в этой ситуации ...
У меня есть стол, курс со многими курсами.
Примерно так:
Id_Course Id_Course_Parent Course_Code Course_Description
1 -1 BE_A Basic English A
2 -1 BF_A Basic French A
3 1 BE_B Basic English B
4 2 BF_B Basic French B
5 1 BE_C Basic English C
Некоторые люди проходили курс «Базовый английский А». Позже этот курс был изменен на «Базовый английский B», но он эквивалентен.
Кто-то с «базовым английским A», а кто-то с «базовым английским B» считается равным.
У меня есть некоторые данные (не в базе данных) из листа Excel.
Примерно так:
+--------+--------------+-------------+
| UserId | User | Course_Code |
+--------+--------------+-------------+
| 1 | Mr Mittens | BE_A |
+--------+--------------+-------------+
| 2 | Sir Meow | BE_A |
+--------+--------------+-------------+
| 2 | Sir Meow | BF_A |
+--------+--------------+-------------+
| 3 | Captain Purr | BE_B |
+--------+--------------+-------------+
| 3 | Captain Purr | BF_B |
+--------+--------------+-------------+
| 4 | Steeve | BE_B |
+--------+--------------+-------------+
В этом примере:
- Пользователи 1, 2, 3 и 4 имеют одинаковое обучение (BE_A эквивалентно BE_B).
- Пользователи 2 и 3 имеют одинаковое обучение (BF_A эквивалентно BF_B).
Я хочу объединить мои данные из базы данных с моим листом Excel.
Что-то вроде:
//(to select all “parent” courses. I only want to display the “main” course in my result).
select * from course where id_course_parent <> -1 as queryDB
Left join excelsheet ES
on ES.cours_code = queryDB.course_code
Но я действительно не знаю, с чего начать ...
У меня есть этот запрос:
var query = from c1 in coursesDatabase
join c2 in coursesCAS on c1.Code equals c2.Code into gj
from subc2 in gj.DefaultIfEmpty()
select new { c1.Id, c1.Code, c1.Name, AA = subc2?.Code ?? "(Not attended)" };
Но я не могу понять, куда добавить часть "подсписка".