SubQuery & Aggregatfunktion

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

  • SubQuery & Aggregatfunktion

    Hallo,

    ich habe ein Problem bei der Lösung einer Aufgabe mit MySQL und daher wollte ich hier nach Hilfe suchen.

    Ich habe zwei Tabellen (habe nur die relevanten Spalten angegeben):

    user_bearbeitet_meldung
    ---------------------------------

    User_ID
    Meldung_ID
    Datum
    ...

    User
    ------

    User_ID
    Name
    Vorname

    Also, wenn ein User eine Meldung verfasst oder editiert, dann wird dies in der Tabelle "user_bearbeitet_meldung" festgehalten. Nun möchte ich eine Abfrage gestalten, mir den Namen & Vornamen des Users, sowie das dazugehörige Datum des VERFASSERS (also durch das "minimale Datum") ausspuckt. Ich habe dazu folgene Abfrage erstellt, die meiner Meinung nach funktionieren müsste. $Meldung_ID ist eine PHP Variable und wird korrekt übergeben..

    PHP-Code:
    SELECT t2.Datumt3.Namet3.Vorname
    FROM User_bearbeitet_Meldung 
    AS t2User AS t3
    WHERE t2
    .Datum = (SELECT min(t2.DatumFROM t2) AND t2.Meldung_ID '$Meldung_ID' 
    Natürlich funktioniert sie nicht... sonst wäre ich ja nicht hier Hat jemand eine Idee?? Danke schonmal im Voraus!

  • #2
    subquery: du hast mysql 4.x drauf?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      mysql 4.x hilft auch nicht ... muss schon >= mysql 4.1 sein ... !
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Verdammt, Recht habt ihr, das habe ich total übersehen :/

        Danke für den Hinweis, ich werd morgen dann mal 4.1 installieren!

        Kommentar


        • #5
          yo und Dein query macht mal ein schönes karthesisches produkt da hilft dir auch mysql 4.1 nich viel...
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Das karthesische Produkt muss ja nicht unbedingt falsch sein ... sonst hätte sich sicherlich keiner die Mühe gemacht Ihm 'nen Namen zu geben ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              jetzt wo Du es sagst... is eigentlich nur von Vorteil man erhält gleich alle Varianten von Datenzuordnungen, die man sich denken kann, muss also nicht mehr rumcoden und so...
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                ... wenn das die Anforderung ist ... dann ist ein kP die vollkommen korrekte Lösung ... immer diese Kritik ... !
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  wenn das die Anforderung ist sicher...
                  hatte ich aber nicht gelesen asche auf mein haupt
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Also wenn man hier schonmal am klugscheissen ist, dann erstmal folgenes: kartesisches Produkt schreibt man ohne h

                    Aber die Abfrage war wirklich nicht richtig, da sie mir zwar das gewünschte minimale Datum zur passenen Meldung lieferte, aber nicht den richtigen User. Also habe ich sie ein wenig ergänzt und folg. Abfrage führte mich anschließend zum richtigen Ergebnis: *edit: doch nicht... argh* *edit2: jetzt funzt's... ich habe vergessen, im Sub-Query den Index für user_b_meldung erneut zu vergeben*

                    PHP-Code:

                    SELECT DATE_FORMAT
                    (t2.datum_akt,'%d.%m.%Y, %T Uhr') AS datum_aktt3.vornamet3.name
                    FROM user_b_meldung 
                    AS t2 INNER JOIN user AS t3 ON t2.user_id t3.user_id
                    WHERE t2
                    .datum_akt = (
                        
                    SELECT min(t2.datum_akt
                        
                    FROM user_b_meldung AS t2 
                        WHERE t2
                    .meldung_id '$meldung_id'

                    Nachträglich nochmal danke für den Tip mit der MySQL Version... ich hätte wohl doch PostgreSQL nehmen sollen
                    Zuletzt geändert von miguel_rkc; 05.08.2004, 09:51.

                    Kommentar


                    • #11
                      @miguel wer isn hier der Klugscheisser?
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar

                      Lädt...
                      X