[SQL allgemein] [Datum]: neuesten Eintrag selektieren

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

  • [SQL allgemein] [Datum]: neuesten Eintrag selektieren

    Wie kann man den datumsmäßig neuesten Eintrag einer Tabelle selektieren?

    Beispiel:
    Angenommen, ich habe zwei Tabellen:

    VORGANG (id, vorgangsname, datum, firma_id)
    FIRMA (id, firmenname)

    Es gibt also n Firmen und für jede Firma kann es m Vorgänge geben.
    Ich will nun eine Liste erstellen, die genau zwei Spalten hat:

    firmenname und datum

    Dabei soll das Datum dem Datum des neuesten (aktuellsten) Vorgangs der betreffenden Firma entsprechen.

    Wie kann ich das erreichen?

    --
    Beispieldaten:

    FIRMA
    -------
    id, firmenname
    ------------------
    1, bla
    2, blubb
    3, laber

    VORGANG
    ------------
    id, vorgangsname, datum, firma_id
    --------------------------------------------
    1, a, 01.01.1999, 1
    2, b, 03.01.2000, 1
    3, c, 03.01.1999, 1
    4, d, 20.01.2004, 2
    5, e, 31.12.2005, 3
    6, f, 12.12.2006, 2

    Dann soll die resultierende Tabelle wie folgt aussehen:

    firmenname, datum
    ------------------------
    bla, 03.01.2000
    blubb, 12.12.2006
    laber, 31.12.2005

    Wie geht das?

    Danke

    s.

  • #2
    Hast du http://www.php-resource.de/forum/sho...threadid=28292 gelesen ?

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Jetzt ja
      Joins sind mir natürlich ein Begriff, aber es scheint dennoch zu haken, denn ich kann mir gerade nicht erklären, wie mir ein Join das liefern kann, was ich brauche.
      Magst Du mir noch einen Tip geben?
      Danke
      s.

      Kommentar


      • #4
        Du könntest, jetzt der Einfachheit halber, bei der Firma-Tabelle noch eine Spalte "letzte Aktion" oder so einführen, wo du halt immer das aktuelle Datum rein schreibst... geht dann auch schneller bei der Abfrage ^^,

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Würde ich glatt machen. Leider bekomme ich eine DB geliefert, in der das so nicht vorkommt. Ich bin also darauf angewiesen, irgendeine intelligente Lösung zu finden.
          Any ideas?
          Tnx
          s.

          Kommentar


          • #6
            Ein Subselect hilft weiter, wenn deine DB-Version das unterstützt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Wie denn das? Magst Du mir das ganz grob skizzieren? Danke
              s.

              Kommentar


              • #8
                Original geschrieben von scrut
                Wie denn das? Magst Du mir das ganz grob skizzieren? Danke
                s.
                Magst du dich erstmal informieren, bevor du wahllos abstrakte Fragen stellst ohne auch nur geringfügig einen Ansatz zu haben?

                Das mysql-Manual (http://dev.mysql.com/doc/) hilft

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Würde ich glatt machen. Leider bekomme ich eine DB geliefert, ...
                  Dann sag doch einfach das du eine entsprechende Spalte brauchst bzw. füg die Spalte ggf. einfach noch ein?!
                  tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                  documentation: php.net mysql.com framework.zend.com

                  Die Nachtwache!

                  Kommentar


                  • #10
                    So gehts:

                    SELECT FIRMA.firmenname, Max(VORGANG.datum)
                    FROM FIRMA INNER JOIN VORGANG ON FIRMA.id = VORGANG.firma_id
                    GROUP BY FIRMA.firmenname;

                    SL

                    Kommentar

                    Lädt...
                    X