Aktív témák

  • Taybore

    aktív tag

    Sziasztok!
    Remélem van köztetek valaki, aki perfect MySQL szakértő, mert több táblás kapcsolat lekérdezésre lenne szükségem és nem vagyok túl jártas a laza kapcsolatokban.
    Alapszitu:
    Van 5 tábla egy fórum motorban (php-s cucc): téma AS T, user AS U, komment AS K, megosztás AS M, látogatás AS L
    A dolog úgy működik, hogy a témákat csak azok a userek láthatják (írhatnak kommentet), amik meg van osztva velük. Tehát van egy rekord M-ben U.id és T.id értékekkel. Amikor "belép" egy témába, akkor L-be felíródik a T.id, U.id és a dátum. Természetesen K-ban is van U.id, T.id és dátum.
    Nekem egy olyan lekérdezés kéne, amiben kiírja a T.cim, U.nick és count(új kommentek)
    Az új kommenteken azt értem (témánként), ahol K.dátum > L.dátum.
    Eddig ezt az SQL-t írtam hozzá:

    SELECT u.nick, t.cim, count(1)
    FROM tema t, user u, megosztas m, komment k, temalatogatas l
    WHERE m.user_id = u.user_id
    AND m.tema_id = t.tema_id
    AND l.user_id = u.user_id
    AND l.tema_id = t.tema_id
    AND k.tema_id = t.tema_id
    AND k.datum > l.datum
    GROUP BY u.nick, t.cim

    A probléma az, hogy ha van olyan téma, ami meg van osztva adott userral, de még sose lépett be, akkor nincs témalátogatás rekordja. Ezt kéne valahogy laza kötéssel (LEFT-RIGHT JOIN) megoldani. Az eredmény tehát az kéne hogy legyen, hogy ki, melyik témából hány kommentet nem olvasott még el.
    Baromira remélem, hogy érthetően írtam le, és nem hagytam ki semmit.
    Előre is köszi a segítséget!

Aktív témák