Announcement

Collapse
No announcement yet.

ORDER BY - Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ORDER BY - Problem

    Moinsen,

    gegeben sind als Beispiel folgende Tabellen:

    Code:
    table root-element(
     id INTEGER,
     element_added DATETIME
    )
    
    table child-element(
     id_root_element INTEGER,
     element_added DATETIME
    )
    Jetzt möchte ich folgendes selecten:
    Die neusten 10 Elemente, egal ob root oder child.

    Das ganze also quasi als
    Code:
    SELECT [data] FROM root-element AS r
    LEFT JOIN child-element AS c ON r.id = c.id_root_element
    Das Problem ist aber: wonach sortieren?
    Nach r.element_added geht nicht, weil dann neuere child-elemente nicht beachtet werden. Nach c.element_added geht auch nicht, weil dann neue
    root-elemente ohne child-elemente nicht beachtet werden.

    Idee?

  • #2
    Hallo ghostx,

    ein Ansatz wäre es mit UNION zu arbeiten, z.B.

    [highlight=sql]
    SELECT id, element_added, 'ROOT' Source
    FROM root-element
    UNION
    SELECT id_root, element_added, 'CHILD' Source
    FROM child-element
    ORDER BY element_added DESC
    [/highlight]

    In der richtigen Reihenfolge sollte die Datensätze dann auf jeden Fall sein.
    Wie Du dann die TOP 10 erhälst, hängt sehr von der verwendeten DBMS ab.
    So gibt es z.B. LIMIT 10

    Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Funktioniert.
      Super, vielen Dank!

      Comment

      Working...
      X