Вывод данных в datagrid из разных таблиц

есть БД в нем хранятся таблицы связанны между собой, есть таблица студенты (student), группы(course) и оценки(estimation). Нужно в DATAGRID вывести столбцы по предметам, все студенты из групп и их оценки по предметувведите сюда описание изображения

вывожу столбцы следующим образом

private void LoadColumn()
        {
            db.OpenConnection();
            OleDbCommand command = new OleDbCommand($"select * from predmets where `id_course` = {group_id}", db.GetConnection());
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    DataGridTextColumn textColumn = new DataGridTextColumn()
                    {
                        Binding = new Binding("predmet_id"),
                        Header = GetPredmetId(reader.GetInt32(2)),
                        IsReadOnly = false
                    };
                    GroupDataGrid.Columns.Add(textColumn);
                }
            }
            db.CloseConnection();
        }

а студентов

db dbase = new db();
            dbase.OpenConnection();
            OleDbCommand command = new OleDbCommand($"select * from student where `course_id` = {group_id}", dbase.GetConnection());
            using (var reader = command.ExecuteReader())
                while (reader.Read())
                {
                    Grades.Add(new Grade()
                    {
                        id = reader.GetInt32(0),
                        student_name = reader.GetString(2),
                        grade = GetGrade(group_id, reader.GetInt32(0), GetPredmet(group_id)),
                        predmet_id = GetPredmet(group_id)
                    });
                }
            GroupDataGrid.ItemsSource = Grades;
            dbase.CloseConnection();

есть Data grid

<DataGrid Grid.Row="1"
                  Name="GroupDataGrid"
                  MaxColumnWidth="400"
                  ColumnWidth="*"
                  CanUserAddRows="False"
                  SelectionUnit="FullRow"
                  SelectionMode="Single" 
                  Loaded="GroupDataGrid_Loaded"
                  AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding id}" Header="Id" Visibility="Hidden"/>
                <DataGridTextColumn Binding="{Binding student_name}" Header="ФИО" IsReadOnly="True"/>
            </DataGrid.Columns>
        </DataGrid>

Ответы (1 шт):

Автор решения: Pekor

Не знаю правильно ли я понял, что именно надо вывести, но сделал вот так + извиняюсь что это не access (это MSSQL), но думаю там особой разницы нет, если я не прав, то удалю ответ.

SELECT dbo.predmets.id_predmet, dbo.student.fullname, dbo.estimation.student_id, dbo.estimation.predmet_id, dbo.estimation.ball, dbo.predmets.id_course
FROM dbo.predmets
INNER JOIN
dbo.student ON dbo.predmets.id = dbo.student.id
INNER JOIN
dbo.estimation ON dbo.predmets.id = dbo.estimation.id

введите сюда описание изображения

В любом случае надеюсь пример понятен, если что задавай вопросы в комментариях, буду исправлять ответ.

И да, очень прошу тебя, не миксуй название полей на английском и русском, fullname и ball, predmet выглядят просто смешно и нелепо.

→ Ссылка