nilsfad: Forum: Beitragsübersicht mit "Letzter Besuch"

Beitrag lesen

Hallo Vinzenz :-)

hat sich seit damals was an der Dir zur Verfügung stehenden MySQL-Version geändert? Mit der 3.23.58 wirst Du wenig Freude an Deinem Vorhaben haben.

Auf meinem Testsystem läuft inzwischen eine 5.0.51, allerdings wäre es wünschenswert, mein Forum auch zu älteren 3er Versionen Abwärtskompatibel zu machen.

Inzwischen habe ich es sogar geschafft, das Vorhaben mittels eines Sub-Selects zu realisieren, was ja aber leider bekanntlich bei der alten MySQL Version 3 noch nicht möglich ist.

SELECT  
  pr1.message_id,  
  pr1.hierarchy_location,  
  pr1.request AS RequestText,  
  pr1.author,  
  prc.category,  
  CONCAT(pu.first_name, ' ', pu.last_name) AS FullName,  
  COUNT(pr1.message_id) - 1 AS CommentCount,  
  date_format(MAX(pr2.date_posted), '%d.%m.%y %H:%i') AS LastActivity,  
  date_format(mvl.viewed_last, '%d.%m.%y %H:%i') AS ViewedLast  
FROM prb_message pr1  
INNER JOIN prb_message_category prc ON pr1.message_id = prc.message_id  
LEFT JOIN prb_user pu ON pr1.author = pu.login_name  
LEFT JOIN (SELECT * FROM prb_message_viewed_last WHERE login_name LIKE 'nils') mvl  
  ON pr1.message_id LIKE mvl.message_id  
INNER JOIN prb_message pr2  
  ON pr1.hierarchy_location =  
    (IF (LOCATE('.', pr2.hierarchy_location),  
    LEFT(pr2.hierarchy_location, LOCATE('.', pr2.hierarchy_location) - 1),  
    pr2.hierarchy_location))  
GROUP BY  
  pr1.message_id,  
  pr1.hierarchy_location,  
  RequestText,  
  pr1.author,  
  prc.category,  
  pu.last_name,  
  pu.first_name  

Wäre das gleiche auch über einen geschickten Self-Join realisierbar? Natürlich nur wenn sich der Aufwand dafür in Maßen hält.

Gruß
Nils