Timestamp aus mehreren Tabellen Ordnen

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

  • Timestamp aus mehreren Tabellen Ordnen

    Hallo,
    ich habe folgendes Problem:

    Ich habe 3 Tabellen die alle ein Feld namens "timestamp" haben. Nun möchte ich gerne aus diesen 3 Tabellen die fünf neusten Einträge über PHP ausgeben lassen.

    Bisher habe ich allerdings nur kurze und einfache Abfragen mit SQL realisiert.

    Zum Beispiel

    PHP-Code:
    $sql mysql_query('SELECT * FROM gallery ORDER BY timestamp DESC LIMIT 5'); 
    Mein Tabellenaufbau sieht so aus.

    gallery
    - id
    - timestamp
    - title
    - file

    downloads
    - id
    - timestamp
    - title
    - file
    - description

    tutorials
    - id
    - timestamp
    - title
    - description


    Kann mir jemand sagen wie ich mein oben beschriebenes Problem lösen kann? Mein Beispiel zeigt wie ich es machen würde wenn ich nur eine Tabelle habe.

    Gruß
    EdMolf
    Zuletzt geändert von EdMolf; 25.02.2008, 14:42.

  • #2
    Re: Timestamp aus mehreren Tabellen Ordnen

    Original geschrieben von EdMolf
    Mein Beispiel zeigt wie ich es machen würde wenn ich nur eine Tabelle habe.
    Dann solltest du es so machen:
    PHP-Code:
    $sql "
        SELECT
            id,
            timestamp,
            title,
            file
        FROM
            gallery
        WHERE 
            id = 5"

    Aber das ist ja nicht die Frage. Wenn ich dich richtig verstehe, sollte das Folgende dir helfen:
    PHP-Code:
    $sql "(
            SELECT
                id,
                timestamp,
                title,
                file,
                ''
            FROM
                gallery
            WHERE 
                id = 5
        UNION
            SELECT
                id,
                timestamp,
                title,
                file,
                description
            FROM
                downloads
            WHERE 
                id = 5
        UNION
            SELECT
                id,
                timestamp,
                title,
                '',
                description
            FROM
                tutorials
            WHERE 
                id = 5
        )
        ORDER BY 
            timestamp DESC 
        LIMIT 5"

    Zuletzt geändert von H2O; 26.02.2008, 08:41.
    Gruss
    H2O

    Kommentar


    • #3
      Da rate ich Dir eine Merge Tabelle!

      auf diese Tabelle kannst dann deine alte Abfrage loslassen! Die Merge Tabelle verbindet quasi im voraus Tabellen miteinander!

      siehe:
      http://dev.mysql.com/doc/refman/5.1/...ge-engine.html

      da sparst dir eine Menge Schreibarbeit!

      greetz Flip
      Find Parties?
      Partysuche

      Kommentar


      • #4
        Original geschrieben von Flip7
        Da rate ich Dir eine Merge Tabelle!
        Original geschrieben von Die Merge-Speicher-Engine
        „Identisch“ bedeutet, dass alle Tabellen dieselben Spalten- und Indexdaten haben
        Du solltest die beiträge vielleicht zuerst etwas genauer lesen. Jede der Tabellen ist unterschiedlich.
        Ausserdem geht das nur mit MyIsam-Tabellen.
        Gruss
        H2O

        Kommentar

        Lädt...
        X