Joins - Die jeweils höchste id is gesucht

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

  • Joins - Die jeweils höchste id is gesucht

    Geht sowas in einer abfrage?

    Ich soll gerade einen freund mit einer sql abfrage helfen möchte es aber gern wenn möglich mit einer abfrage lösen anstadt mit einem array gedöns.

    ICh hab zwei tablellen, eine user tabelle und einer order tabelle.
    Die order tab is mit der user tab via userid verknüpft:

    id (pk) (unique)
    userid
    ordertext
    orderdate

    Jetzt hätte ich gern in einer abfrage die jeweils letzte order von jedem user aus der user tab der eine order gesetzt hat.

    Alle ist kein prob:

    SELECT oo.orders, oo.orderdate, uu.username
    FROM users uu
    RIGHT JOIN orders oo
    USING ( userid )

    Wie erste order wäre auch einfach:
    SELECT oo.orders, oo.orderdate, uu.username
    FROM users uu
    RIGHT JOIN orders oo
    USING ( userid )
    GROUP BY oo.userid

    Wie bekomme ich jetzt aber die letzte order? klar mit max() komm ich dann an die letzte id, aber gehts auch in einer query?


    Über sehe ich hier etwas?

    Danke fürs lesen
    gruss timepoint5
    Möglich ist alles!

  • #2
    Re: Joins - Die jeweils höchste id is gesucht

    Original geschrieben von timepoint5

    Alle ist kein prob:
    ...

    klar mit max() komm ich dann an die letzte id, aber gehts auch in einer query?
    und warum machst du es dann nicht einfach mit max?
    Code:
    select max(a.id), max(a.orderdate), a.userid
    from orders a 
    inner join users b
    on ( a.userid = b.userid )
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Weil ich gern den ordertext auch noch gehabt hätte.
      Aber du hast eigentlich recht, das ist echt die beste lösung ! Danke Dir
      Möglich ist alles!

      Kommentar


      • #4
        Hmmmnnn ... ich würd's mit 'nem INNER JOIN ... und 'nem LEFT JOIN machen
        Code:
        SELECT u.*, o.*
        FROM users u
        INNER JOIN o
        ON u.userid = o.userid
        LEFT JOIN o2
        ON o.orderdate > o2.orderdate
        WHERE o2.orderid IS NULL
        PS.: das ist nicht die Lösung ... sondern soll lediglich das Prinzip veranschaulichen ...

        PS2.: Findest Du's nicht albern 'ne Lösung die Du hier bekommst, Deinem Freund als Superman und wohl noch als eigene zu präsentieren? ... Nächstesmal schickst Du Ihn besser selbst hier hin ... !
        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


        • #5
          Original geschrieben von goth

          PS2.: Findest Du's nicht albern 'ne Lösung die Du hier bekommst, Deinem Freund als Superman und wohl noch als eigene zu präsentieren? ... Nächstesmal schickst Du Ihn besser selbst hier hin ... !
          vielleicht ... ist er selbst der Freund ...

          Kommentar

          Lädt...
          X