[MySQL 4.0] Umschreiben von subselcts, wer hilft?

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

  • Wurzel
    antwortet
    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); 

    Einen Kommentar schreiben:


  • jamson
    antwortet
    danke trotzdem für eure mühe.

    Einen Kommentar schreiben:


  • jamson
    antwortet
    hat "sie" gelesen, sieht aber kein beispiel das passt.

    Einen Kommentar schreiben:


  • Wurzel
    antwortet
    Original geschrieben von schmalle
    nein
    stimmt ... hat er nicht.

    Einen Kommentar schreiben:


  • jamson
    antwortet
    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)

    Einen Kommentar schreiben:


  • schmalle
    antwortet
    Original geschrieben von Wurzel
    schon gelesen?
    http://www.php-resource.de/forum/sho...threadid=28292
    nein

    Einen Kommentar schreiben:


  • Wurzel
    antwortet
    schon gelesen?
    http://www.php-resource.de/forum/sho...threadid=28292

    Einen Kommentar schreiben:


  • hydrococcus
    antwortet
    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.

    Einen Kommentar schreiben:


  • jamson
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • jamson
    hat ein Thema erstellt [MySQL 4.0] Umschreiben von subselcts, wer hilft?.

    [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.
Lädt...
X