【问题标题】:sql JOINs and COUNTsql JOIN 和 COUNT
【发布时间】:2012-01-06 18:09:57
【问题描述】:

假设我有这个查询

 SELECT ft.*, m.*
   FROM forum_topics ft
     INNER JOIN members m ON ft.author = m.id
     WHERE ft.forum =  '$forum'
     ORDER BY ft.lastpost DESC 

我还想从表forum_replies 中获取行数,其中id = ft.id。 我怎么能这样做?

【问题讨论】:

    标签: mysql sql join count


    【解决方案1】:

    根据您的数据库实现,这可能有效:

     SELECT ft.*, 
            m.*,
            ( SELECT count(1)  
                FROM forum_replies fr 
               WHERE fr.id = ft.id) AS nr_of_replies 
       FROM forum_topics ft
         INNER JOIN members m ON ft.author = m.id
         WHERE ft.forum =  '$forum'
         ORDER BY ft.lastpost DESC
    

    HTH

    【讨论】:

      【解决方案2】:
      SELECT ft.*, m.*, fr.ReplyCount
      FROM forum_topics ft
      INNER JOIN members m ON ft.author = m.id
      inner join (
         Select Id, Count(*) as ReplyCount
         from forum_replys 
         group by id
       ) as fr 
       on ft.Id = fr.Id
       WHERE ft.forum =  '$forum'
       ORDER BY ft.lastpost DESC
      

      【讨论】:

        猜你喜欢
        • 2012-11-12
        • 2013-05-29
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        • 1970-01-01
        • 2010-10-30
        相关资源
        最近更新 更多