【发布时间】:2013-06-10 23:25:55
【问题描述】:
我想写几个 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 和相应的技能类别。
【问题讨论】:
-
如果您提供示例数据(不是全部 100 多列,只是其中的几个),以及您期望得到什么,它将帮助大家理解您的问题
-
您可以使用sqlfiddle.com创建一个虚拟数据集,这样我们提供解决方案会容易得多
-
什么类型的“降序”,按技能水平、时间顺序、字母顺序?我知道您是 SO 新手,但要获得具体答案,我们需要一个具体问题,请提供一个小型数据集和您尝试过的任何相关代码。
-
这是一个非常可怕的架构设计。您应该使用包含
student_id、skill_id、skill_level列的表。 -
您将数据存储在数据库结构中,现在您需要进行数据透视查询。 stackoverflow.com/questions/6605604/…恕我直言,您应该认真重新考虑您的架构。
标签: mysql