sql >> Base de Datos >  >> RDS >> Mysql

Subconsulta MYSQL SELECCIONAR en la cláusula JOIN

Es difícil saberlo sin ver el DDL de sus tablas, los datos de muestra relevantes y el resultado deseado.

Podría haberme equivocado en tus requisitos, pero prueba esto:

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