Выберите двустороннюю таблицу в MySql - PullRequest
0 голосов
/ 18 мая 2011

У меня есть три таблицы MySql:

Студенты - StudentId, StudentName

Оценки - AssessmentId, AssessmentName

Результаты - StudentId, AssessmentId, Grade

Я не могу заранее определить количество студентов или оценок, так как они создаются пользователями.

Как выбрать двухстороннюю таблицу, показывающую результаты оценок всех учащихся (в которых будет задано непредопределенное количество строк и столбцов):

|--------|---------|---------|---------|---------|---------|
|User    |Test A   |Test B   |Test C   |Test D   |Test E   |
|--------|---------|---------|---------|---------|---------|
|Alex    |A        |A        |C        |Null     |F        |
|Ben     |Null     |D        |A        |Null     |Null     |
|--------|---------|---------|---------|---------|---------|

Я хочу сделать это либо в SQL-запросе, либо с помощью LINQ to Entities в ASP.NET, если для этого есть эффективный метод.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Я не думаю, что вы можете создать сводную или перекрестную таблицу непосредственно в MySQL.Вы можете выбрать результаты, упорядоченные пользователем, проверить, а затем переставить их в кросс-таблицу.См., Например,

Можно ли сводить данные с помощью LINQ?

Linq: Как преобразовать строки в столбцы с количеством (данные перекрестной таблицы)?

0 голосов
/ 18 мая 2011

Вы не можете достичь этого в одном запросе SQL.Вам понадобится функция, которая сгенерирует набор результатов с переменными столбцами, а затем сделает выбор из него.

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