[MySQL 4.0] Umschreiben von subselcts, wer hilft?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.0] Umschreiben von subselcts, wer hilft?

    Da mysql keine Subselects unterstützt habe ich mit folgender Anfrage ein Problem:

    SELECT anwesenheit FROM beurteilung WHERE lv_name = [SELECT lv_name FROM beurteilung WHERE beurteilungs_id = [SELECT MAX(beurteilungs_id) FROM beurteilung]];

    Ich krieg das nicht aufgelöst, hab schon mit Temporary Tables rumprobiert aber irgendwas funzt das nicht.

    Das ganze wird in php eingebunden, hab folgenden code geschrieben, der funktioniert aber auch nicht, seh schon Sternchen von der Fehlersuche. Bin nicht so superfit in php, wie man wahrscheinlich sieht:

    <?
    $query1 = "SELECT MAX(beurteilungs_id) FROM beurteilung";
    $result1= mysql_query($query1, $conn);

    while ($data1 = mysql_fetch_array($result1))
    {
    $beurteilungs_id = $data1["beurteilungs_id"];
    }

    $query2 = "SELECT lv_name FROM beurteilung WHERE beurteilungs_id= '".$beurteilungs_id."';
    $result2 = mysql_query($query2, $conn);

    while ($data2 = mysql_fetch_array($result2))
    {
    $lv_name = $data2["lv_name"];
    }

    $query3 = "SELECT anwesenheit FROM beurteilung WHERE lv_name LIKE '".$lv_name."';
    $result3 = mysql_query($query3, $conn);

    while ($data3 = myql_fetch_array($result3))
    {
    for $i = 0; $i < mysql_num_rows($data3); $i++)
    {
    echo $data3['anwesenheit'];
    }
    }
    ?>

    Wär cool, wenn mir jemand helfen könnte, muss meine Prüfung sonst knicken.

  • #2
    was ist denn
    [SELECT [COLOR=firebrick]MAX[/COLOR](beurteilungs_id) FROM beurteilung]];

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      also ich brauche alle eintrage zur "anwesenheit". und zwar nur die, wo der lv_name der gleiche ist, wie im letzten Eintrag in die Tabelle. Der Schlüssel ist beurteilungs_id (auto_increment). ich suche also MAX(beurteilungs_id) FROM beurteilung. Das alleine funktioniert auch.

      Kommentar


      • #4
        ich versteh nicht ganz was du machen willst. MAX gibt nur den höchsten wert einer tabellenspalte wieder.
        wäre gut zu wissen, was der zweck deines tun's ist.

        Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

        Kommentar


        • #5
          schon gelesen?
          http://www.php-resource.de/forum/sho...threadid=28292
          Kissolino.com

          Kommentar


          • #6
            Original geschrieben von Wurzel
            schon gelesen?
            http://www.php-resource.de/forum/sho...threadid=28292
            nein
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              Wie schon gesagt, ich brauche die höchste beurteilungs_id, weil ich den lv_namen aus diesem Eintrag brauche. Dann will ich alle Einträge (z.B. anwesenheit )wo der lv_name gleich dem lv_namen des letzten Eitrags in der Datenbank ist. Ich weiß nicht, wie ich das sonst beschreiben soll. es handelt sich um eine Umfrage mit auswertung. Diese Auswertung soll aber nur mit den Einträgen rechnen, die den gleichen lv_namen haben.

              Ich brauche definitiv den lv_namen aus dem letzten Eintrag in die Datenbank.

              Die Auswertung findet abhängig vom lv_namen statt

              Das ist die Tabelle:

              CREATE TABLE beurteilung (
              lv_name varchar(30),
              dozent_name varchar(30),
              semester varchar(30),
              anwesenheit int,
              stoffumfang int,
              inhalt int,
              lv_insg int,
              engagement int,
              vortragsstil int,
              puenktlichkeit int,
              dozent_insg int,
              lehrinhalte int,
              bedeutung_stoff int,
              didaktik_insg int,
              rahmenbedingungen text,
              beurteilungs_id int NOT NULL auto_increment,
              PRIMARY KEY (beurteilungs_id)

              Kommentar


              • #8
                Original geschrieben von schmalle
                nein
                stimmt ... hat er nicht.
                Kissolino.com

                Kommentar


                • #9
                  hat "sie" gelesen, sieht aber kein beispiel das passt.

                  Kommentar


                  • #10
                    danke trotzdem für eure mühe.

                    Kommentar


                    • #11
                      hmmm ... mit nem join komm ich auch nicht hin aber so sollte es gehen:
                      PHP-Code:
                      $query1 "SELECT lv_name, MAX(beurteilungs_id) maxi 
                                            FROM beurteilung 
                                            GROUP BY beurteilungs_id 
                                            ORDER BY maxi DESC 
                                            LIMIT 1"

                      $result1mysql_query($query1$conn);
                      $data1 mysql_fetch_array($result1);

                      $query2 "SELECT anwesenheit 
                                           FROM beurteilung 
                                           WHERE lv_name = '"
                      .$data1['lv_name']."'";
                      $result2 mysql_query($query2$conn); 
                      Kissolino.com

                      Kommentar

                      Lädt...
                      X