【发布时间】:2016-11-29 12:53:16
【问题描述】:
我有这个数据库表“MyTable”包含如下所示的数据,我想使用 where 子句从中获取数据,这样我就可以在“MyView2.
MyTable
StudentID courseID scores term Academic year
A001 PHY 70 1 2016
A004 MATH 60 2 2014
A001 CHEM 80 1 2016
A002 MATH 72 1 2016
A002 CHEM 61 1 2016
A004 PHY 49 2 2014
A001 MATH 89 1 2016
A002 PHY 65 1 2016
A004 CHEM 71 2 2014
到目前为止,我已经使用这段代码将这些结果带到“MyView”上
<?php
……………………………………
SELECT stid, MAX( CASE WHEN courseid = 'MATH' THEN marks END) MATH ,MAX( CASE WHEN courseid 'CHEM' THEN marks END) CHEM,MAX( CASE WHEN courseid = 'PHY' THEN marks END) PHY FROM MyTable GROUP BY stid ORDER BY 1"
…………………………
?>
我的视图
StudentID MATH CHEM PHY
A001 70 80 89
A002 72 61 65
A004 60 71 49
我应该在哪里以及如何实施“where 子句”以根据 2016 学年第 1 学期将结果显示在“MyView2”表中
我的视图2
StudentID MATH CHEM PHY
A001 70 80 89
A002 72 61 65
【问题讨论】:
-
SELECT stid , MAX( CASE WHEN courseid = 'MATH' THEN 标记 END) MATH , MAX( CASE WHEN courseid 'CHEM' THEN 标记 END) CHEM , MAX( CASE WHEN courseid = 'PHY' THEN标记 END) PHY FROM MyTable GROUP BY stid WHERE stid = 'A004' ORDER BY 1
-
实际上不是单个数据,是一组数据,因此我想根据学期和学年获取它,所以我无法通过 studentiD @scais Edge 获取它
-
就我个人而言,如果你以后只是要在 PHP 中处理结果,我认为以这种方式执行查询是愚蠢的
-
假设我想获取第一学期的所有数据,而学年是 2016 年,我该怎么做@scaisEgge
-
英语不太好,你能说出你的意思吗@Strawberry
标签: mysql where-clause having-clause