2016-11-29 6 views
-2

Ich habe diese Datenbanktabelle "MyTable" Daten enthalten, wie unten gezeigt, ich möchte Daten von dort mit Where-Klausel abrufen, so dass ich eine Ansicht wie auf "MyView2.Wie man eine WHERE-Klausel in eine MySQL-Abfrage implementiert

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 

Bisher habe ich dieses Stück Code verwendet haben diese Ergebnisse auf „MyView„zu bringen

<?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 

Wo und wie soll ich ‚where-Klausel‘ implementieren, um bringen Ergebnisse basierend auf dem akademischen Jahr 2016, Term 1 Ergebnisse auf Tabelle "MyView2" haben

MyView2

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

SELECT stid , MAX (CASE WENN kursid = 'MATH' THEN marks ENDE) MATH , MAX (FALL WENN Kurs 'CHEM' DANN markiert ENDE) CHEM , MAX (FALL WENN kursid = 'PHY' DANN markiert ENDE) PHY VON MyTable GROUP BY std WHERE STID = 'A004' ORDER BY 1 – scaisEdge

+0

ist eigentlich nicht eine einzige Daten, ist die Gruppe von Daten also, warum ich es basierend auf Begriff und akademisches Jahr abrufen will, so kann ich es nicht abrufen von studentiD @ scais Edge – f2k

+0

Persönlich denke ich, es ist daft, eine Abfrage auszuführen Art und Weise, wenn Sie nur das Ergebnis in PHP danach verarbeiten werden – Strawberry

Antwort

0

Es wäre viel einfacher und flexibler sein, wenn Sie die folgende Abfrage verwendet, und behandelt alle weiteren Verarbeitung in PHP oder JavaScript ...

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

danke für die Antwort, wird es funktionieren ohne wo, weil ich bestimmte Daten abholen will Gruppe von ihnen basierend auf Jahr und Begriff (akademisches Jahr 2016 und Amtszeit ist 1) @ Strawberry – f2k

+0

Sie können eine WHERE hinzufügen, wenn Sie möchten. Wenn der Datensatz nicht zu groß ist, können Sie das Filtern in PHP oder JavaScript statt – Strawberry

+0

ok, lassen Sie mich versuchen, daran zu arbeiten .. danke für Ihre Zeit @ Strawberry – f2k

Verwandte Themen