Je dirai comme punkoff qu'une jointure externe devrait suffire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
SELECT 
    NomCategorie, 
    NomForum, 
    TitreSujet, 
    PseudoMembre, 
    dateDernierSujet
FROM forum f 
INNER JOIN categorie c 
    ON f.IdForCat = c.IdCategorie
LEFT OUTER JOIN (
    SELECT IdSujFor, max(DateSujet) AS dateDernierSujet
    FROM sujet
    GROUP BY IdSujFor
) AS T1
        INNER JOIN sujet s 
            ON T1.dateDernierSujet = s.DateSujet
        INNER JOIN membre m 
            ON s.AuteurSujet = m.IdMembre
    ON T1.IdSujFor = f.IdForum