Mysql
 sql >> Database >  >> RDS >> Mysql

Sottoquery MySQL SELECT nella clausola JOIN

È difficile dirlo senza vedere il DDL delle tabelle, i dati di esempio rilevanti e l'output desiderato.

Potrei aver sbagliato i tuoi requisiti, ma prova questo:

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