• Hallo!

    Ich hab ein Problem, was sich als Schwieriger gestalten dürfte.

    Ich habe folgenden MySQL Code:

    $sql = "SELECT cat.cat_id, cat.cat_view_level, cat.cat_title, cat.cat_view, cat.cat_date, cat.cat_event_id, cat.cat_location_id, loc.location_id, loc.location_name, COUNT(pic.pic_id) AS pic_count, pic.pic_thumbnail, event.event_name, event.event_date FROM ".ALBUM_CAT_TABLE." AS cat
    LEFT JOIN ".LOCATION_TABLE." AS loc
    ON cat.cat_location_id = loc.location_id
    LEFT JOIN ".ALBUM_TABLE." AS pic
    ON cat.cat_id = pic.pic_cat_id
    LEFT JOIN ".EVENT_TABLE." AS event
    ON cat.cat_event_id = event.event_id

    WHERE cat.cat_user_id='0' AND cat.cat_parent='0'
    GROUP BY cat.cat_title, cat.cat_id
    ORDER BY cat.cat_order DESC, cat.cat_id DESC";

    Dieser sorgt dafür, dass Fotoalbum-Ordner in eine Liste geladen werden. Grob gesagt.

    Diese Liste soll sich sortieren und zwar nach Datum. Allerdings gibt es da zwei verschiedene Quellen:

    Manche Daten werden aus cat.cat_date bezogen, manche (die meisten) aber aus event.event_date.

    Wenn ich in Order By aber event.event_date DESC, cat.cat_date DESC schreibe werden die Ergebnisse zwar richtig sortiert aber getrennt. Ich möchte, dass diese Ergebnisse zusammengefügt werden.

    Wie mach' ich das?

    Danke für Hilfe! :)

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Einzige Idee von mir: Versuch nen anderen Join als LEFT JOIN

    Sorry hab Joins noch nie verwendet, kann da nicht viel sagen.
    Aber meine schätzung ist dass LEFT JOIN die Tabellen nicht durchmischt

  • Du hast mein Problem nicht verstanden.
    Wozu zweimal einen Timestamp speichern? Einen für das Event und eins für die Kategorie?
    Wieso sollte eine Kategorie einen Timestamp besitzen

  • Mit:

    Code
    INNER JOIN eventtable2 ON eventtable1.date=eventtable2.date ORDER BY  eventtable1.date DESC

    sollte es funktionieren ;)

    Hallo!

    Also ich habe das mal so probiert:

    Aber das funktioniert nicht?

    Was mache ich falsch?

    Mfg

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Um sudeki's Vorschlag zu übernehmen musst du die INNER JOIN Zeile löschen und dein LEFT JOIN EVENT_TABLE etc in ein INNER JOIN verwandeln

  • Hallo!

    Es funktioniert nicht.

    Es werden dann nur noch Alben angezeigt die ein Event hinterlegt haben.

    Könnt ihr mir den ganzen Mysql-Code schicken mit meinem als Vorlage, wie es wirlich gehört? Ich glaub ich bin zu dumm dazu...

    Mfg

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Ok hat sich erledigt, da ich nicht mehr warten wollte hab ich es kurzerhand per php sortiert! Trotzdem danke!

    PHP
    if(isset($this) || !isset($this)){ // that's the question...