Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL-Unterabfrage SELECT in der JOIN-Klausel

Es ist schwer zu sagen, ohne DDL Ihrer Tabellen, relevanten Beispieldaten und der gewünschten Ausgabe zu sehen.

Ich könnte Ihre Anforderungen falsch verstanden haben, aber versuchen Sie Folgendes:

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