Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sous-requête MYSQL SELECT dans la clause JOIN

Il est difficile de dire sans voir le DDL de vos tables, les exemples de données pertinents et la sortie souhaitée.

J'ai peut-être mal compris vos exigences, mais essayez ceci :

SELECT *  
  FROM forum_cat c LEFT JOIN 
       (SELECT t.cat_id, 
               p.topic_id, 
               t.title, 
               p.id, 
               p.body, 
               MAX(p.`date`) AS `date`, 
               p.author_id, 
               u.username
          FROM forum_post p INNER JOIN
               forum_topic t ON t.id = p.topic_id INNER JOIN
               `user` u ON u.user_id = p.author_id
         GROUP BY t.cat_id) d ON d.cat_id = c.id
 WHERE c.main_cat = 1
 ORDER BY c.list_no