我想编写几个mysql查询来从mysql数据库中检索数据。
如果我解释这个问题,数据库表中有136列。表用于存储学生的信息及其技能类别。大约有6个主要类别,所有136个子类别都在其中。如果主要类别是数学,则有子类别,如应用数学,纯数学等。所有信息都包含在一个表中,没有标准化。
学生的技能水平从1-5开始计算。 5是最大的。如果我将学生姓名传入mysql查询,我想按降序打印他的主要类别和子类别。请注意,任何学生都可以关注多个主要类别。
Last Name Web technologies - HTML Web technologies - CSS Web technologies - XML Web technologies - JavaScript Web technologies - J-Query ......
Bill 3 1 4 na na 1 3 na na na na na na na na na
Arun 1 5 1 3 1 2 1 na na 3 1 5 1 1 na
Soma na na na na na na na na na na na na na na na na
如果我选择Arun,我想将技能等级显示为5 5 3 3 3 1111111和各自的技能类别。
答案 0 :(得分:1)
SELECT *
FROM (SELECT "Web Technologies HTML", skill_web_html skill_level
FROM student_skills
WHERE student_id = @id
UNION
SELECT "Web Technologies CSS", skill_web_css
FROM student_skills
WHERE student_id = @id
UNION
...
SELECT "Web Technologies J-Query", skill_web_jquery
FROM student_skills
WHERE student_id = @id
UNION
...) all_skills
ORDER BY skill_level DESC