• 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

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • 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

  • keine ahnung, er wird schon seinen grund gehabt haben, wieso er da einen timestamp will.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • 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...