Daten aus verschiedenen Tabellen auslesen / Vergleichen

  • Hallo!
    Bin neu hier im Forum und grad am verzweifeln.

    Ich sitze vor folgendem Problem:

    Ich habe 1 Datenbank, und sagen wir mal 5 verschiedene Tabellen.
    In jeder der 5 Tabellen stehen Einträge, die irgendwann mal getätigt worden sind.
    In jeder Tabelle steht aber auch die Eintragungszeit und Datum. mal als "zeitpunkt" oder "zeit" oder "time" etc...

    Ich möchte nun eine Abfrage schreiben, die mir ->5<- Ergebnisse liefert. Und zwar möchte ich nach der Reihenfolge absteigend die neuesten Einträge anzeigen. Dabei sollen aber nicht nur aus einer ausgelesen werden sondern ich will aus allen 5 Tabellen, nur insgesamt 5 neueste Einträge!! (Nicht 25, sondern 5 eben)
    Mit den 5 Einträge bekomm ich hin, $count gesetzt und gezählt eben. Das ist nicht das Problem. Mehr jedoch die mysql Abfrage.

    Ich hoffe mir kann jemand helfen!

  • also ich bin lang aus dem datenbank-thema raus, aber so spontan denk ich mir, daß du nen view machen solltest, der eben irgendwie diese 5 tabellen verknüpft...
    auf diesen view kannste dann die abfrage stellen, die dir die ergebnisse liefert.
    bin mir grad nicht sicher, aber da sollte es ja die möglichkeit geben die 5 jüngsten datums-objekte rauszufiltern

  • Wenn ich dich richtig verstanden habe, benutzt du unterschiedliche Zeitformate, da kann dir die SQL so ein paar Probleme machen.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Habe gerade nocheinmal geschaut. Wenn ich mich auf 4 beschränke, also 4 Tabellen hab ich 4 mal timestamp vorliegen. Also 4 mal dieselbe Zeiteinheit.
    Das würde mir auch langen!

  • wie du nen join baust weisste??

    ich schreib dir jetzt mal den originalview ab, der hier in den schulungsunterlagen drinsteht, ich hoff des hilft...
    wie gesagt ich bin über 2.5 jahre aus dem thema raus....

    Code
    CREATE VIEW salvu50
       AS SELECT employee_id ID_NUMBER, last_name NAME, salary*12 ANN_SALARY
            FROM employees
            WHERE department_id = 50;

    wenn ich jetzt das ganze mal in andere form bringe (also ich versuchs zumindest)


    Code
    CREATE VIEW viewname
       AS SELECT spalte1 ALIASFÜRSPALTE1, spalte2 ALIASFÜRSPALTE2, spalte3*12 ALIASFÜRSPALTE3_multipliziert mit 12
            FROM tabellenname
            WHERE bedingung_für_auswahl;


    naja, so wie ich des verstanden hab kannste da also nen join als select-klausel machen und so die tables verknüpfen.

    was auch ginge wäre die ganz normale abfrage, die du brauchst für jeden table zu erstellen und die ergebnisse in einer neuen tabelle zu schreiben, danach machste die abfrage auf deinen ergebnistable nochmal und müstest auf das gewünschte ergebnis kommen

  • Geht so.

    Erstmal Danke für die Mühe die du dir gemacht hast!

    Hier meine Abfrage:

    Code
    $lastthings = $db->query ("SELECT t.title, t.tuttime, t.tutid, t.userid, t.status, j.id, j.frei, j.zeit, j.userid, j.eintrag_name, g.bild_id, g.gesperrt, g.user_id, g.bild_name, g.datum, w.id, w.userid, w.word, w.time FROM bb".$n."_tutorial t LEFT JOIN bb".$n."_jgs_db_eintrag j LEFT JOIN bb".$n."_jgs_galerie_bilder g LEFT JOIN bb".$n."_wordhelp_new w WHERE t.tuttime<'$zeit_jetzt' AND j.zeit<'$zeit_jetzt' AND g.datum<'$zeit_jetzt' AND w.time<'$zeit_jetzt' AND t.status=1 AND j.frei=1 AND g.gesperrt=0 ORDER BY t.tuttime DESC");

    Bekomm einen mysql fehler ;D.

    Database error in WoltLab Burning Board (2.3.6 pl2): Invalid SQL: SELECT t.title, t.tuttime, t.tutid, t.userid, t.status, j.id, j.frei, j.zeit, j.userid, j.eintrag_name, g.bild_id, g.gesperrt, g.user_id, g.bild_name, g.datum, w.id, w.userid, w.word, w.time FROM bb1_tutorial t LEFT JOIN bb1_jgs_db_eintrag j LEFT JOIN bb1_jgs_galerie_bilder g LEFT JOIN bb1_wordhelp_new w WHERE t.tuttime<'1202066319' AND j.zeit<'1202066319' AND g.datum<'1202066319' AND w.time<'1202066319' AND t.status=1 AND j.frei=1 AND g.gesperrt=0 ORDER BY t.tuttime DESC
    mysql error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE t.tuttime<'1202066319' AND j.zeit<'1202066319' AND g.datu

    Mache da woohl gehörig was falsch. Und wo ich nun das view Element einbauen soll wesi ich auch nicht...!