如何在MySQL查询上实现WHERE子句

时间:2016-11-29 12:53:17

标签: mysql where-clause having-clause

我有这个数据库表“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"
         …………………………
  ?>

MyView

   StudentID    MATH    CHEM    PHY
    A001         70       80    89
    A002         72       61    65
    A004         60       71    49

我应该在何处以及如何实施“where clause”以根据2016学年第1学期的结果,将结果放在“MyView2”表上

MyView2

   StudentID    MATH    CHEM    PHY
    A001         70       80    89
    A002         72       61    65

1 个答案:

答案 0 :(得分:0)

如果您使用以下查询,并使用PHP或JavaScript处理所有进一步处理,这将更加简单和灵活...

SELECT stid
     , courseid 
     , marks 
     FROM MyTable
 ORDER BY stid, courseid