susi: neuste datensätze aus zwei tables?

hallo,

die nächste frage mag sich ein wenig dumm anhören und ich würde jedem den rat geben es ist nicht möglich jedoch eventuell gibt es ein möglihckeit die mir nicht geläufig ist!

ich möchte aus zwei tables "news" und "reports" die neusten fünf datensätze herausholen! geht dies?

also was nicht geht ... es aber ein wenig aufschlussreicher macht ist ..

Select * from news, reports ORDER BY news.date, reports.date LIMIT 0,5

wenn ich darauf schaue wird die frage immer dümmer, naja dennoch ...
es gibt smartere wesen als mich ...

bussi susi

  1. und ja!

    man könnte es in zwei machen und dann nach datum per skriptsprache ranken, schon klar!

    dennoch geht es in einem SELECT ohne die ev. doppelte anzahl von daten zu holen?

    1. und ja!

      man könnte es in zwei machen und dann nach datum per skriptsprache ranken, schon klar!

      dennoch geht es in einem SELECT ohne die ev. doppelte anzahl von daten zu holen?

      Hi,

      ich hatte vor kurzem genau das gleiche Problem. Ich habe hier ebenfalls einen Thread eröffnet (24.1.  Titel: "Ausgabe der letzten SQL

      Einträge" Bereich: "Datenbank")

      Dort gab es einiges Replys. Mit der Datumsfunktion werde ich nicht so glücklich um die letzten x Einträge aus verschiedenen Tabellen zu selektieren. Mir wurde zu einer weiteren Tabelle (in Deinem Fall also zu einer dritten) geraten, in der ich die Einträge per laufender ID sortiere. Das hat allerdings den Nachteil, dass es auch da zu inkonsistenzen kommen kann wenn Einträge zwischenzeitlich gelöscht wurden, die IDs also nicht mehr lückenlos vorliegen. Ausserdem liegen die Daten natürlich dann redundant in mehreren Tabellen.

      Hast du für Dich schon eine funktionierende Lösung gefunden?

      Grüße
      Sascha

  2. yo,

    ich möchte aus zwei tables "news" und "reports" die neusten fünf datensätze herausholen! geht dies?

    die frage ist nicht dumm und ja, es geht mit einer abfrage. UNION ALL wäre das Stichwort für dich, wobei die Anzahl der spalten gleich sein muss.

    Select * from news, reports ORDER BY news.date, reports.date LIMIT 0,5

    aber vorher ist noch zu klären, was die letzten 5 einträge bei dir bedeuten. LIMIT ist bequem, trifft es aber nicht immer, da ja datensätze auch das gleiche datum haben könnten. mit LIMIT würdest du bei gleichem datumswerten abschneiden, die frage ist, ob das für dich ok ist. wenn nicht, muss du mit unterabfragen arebéiten, was ab 4.1 geht.

    Ilja

    1. yo,

      ich möchte aus zwei tables "news" und "reports" die neusten fünf datensätze herausholen! geht dies?

      die frage ist nicht dumm und ja, es geht mit einer abfrage. UNION ALL wäre das Stichwort für dich, wobei die Anzahl der spalten gleich sein muss.

      Select * from news, reports ORDER BY news.date, reports.date LIMIT 0,5

      aber vorher ist noch zu klären, was die letzten 5 einträge bei dir bedeuten. LIMIT ist bequem, trifft es aber nicht immer, da ja datensätze auch das gleiche datum haben könnten. mit LIMIT würdest du bei gleichem datumswerten abschneiden, die frage ist, ob das für dich ok ist. wenn nicht, muss du mit unterabfragen arebéiten, was ab 4.1 geht.

      Ilja

      ja ich hab mysql 4.1 auf dem server laufen!
      leider haben die tables nicht die selbe anzahl von spalten jedoch jene felder die ich selectiere sind gleich!
      das abschneiden versteh ich nicht ganz ...

      bin eben auch shcon am subselect durchblättern dennoch komm ich zu keinem ansatz ... ein tip?

  3. Hallo susi,

    sei bitte so nett un poste doch mal die Struktur dieser Tabellen.
    Ich kann ohne praktisches Beispiel schlecht nachdenken.

    bussi susi

    lass mal, mein Weib wird bei sowas schnell tueksch ... ;-)

    Gruss und Dank
    Norbert

    1. Hallo susi,

      danke ...

      bin mit union schon zum ziel gekommen!

      susi