开发者

Select a two-way table in MySql

I have three MySql tables:

Students - StudentId, StudentName

Assessments - AssessmentId, AssessmentName

Results - StudentId, AssessmentId, Grade

I can't predetermine the number of students or assessments, as these are created by users.

How can I select a two-way table, showing the results of all students' assessments (which will have an unpredetermined number of rows and columns):

|--------|---------|---------|---------|---------|---------|
|User    |Test A   |Test B   |Test C   |Test D   |Test E   |
|--------|---------|---------|---------|---------|---------|
|Alex    |A        |A    开发者_StackOverflow中文版    |C        |Null     |F        |
|Ben     |Null     |D        |A        |Null     |Null     |
|--------|---------|---------|---------|---------|---------|

I am looking to do this either in a SQL select, or using LINQ to Entities in ASP.NET, if that has an efficient method for achieving the same.

Thank you.


You cannot achieve this in a single SQL query. You will need a function that will generate a result-set with variable columns and then make a select from it.


I don't think you can create a pivot or crosstab directly in MySQL. You could select the results ordered by user, test then rearrange them into a cross tab. See e.g.

Is it possible to Pivot data using LINQ?

Linq: How to transform rows to columns with a count (Crosstab data)?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜