drl9940 2012-05-05 03:19
浏览 356
已采纳

如何使用LEFT JOIN mysql从另一个表派生count(*)

I have table definition like below:

  • Place
    (id, name)
  • Review
    (id, userid, placeid)
  • Favorite
    (id, userid, placeid)
  • Photo
    (id, url, placeid)
    where placeid is foreign key to the id of Place table.

On that table, I want to derive this kind of information:
- placeid, place name, totalReview, totalFavorite, totalPhoto.

I got stucked. My progress currently I can derive information just from 1 table, like I can know totalReview of place, by using this mysql statement: SELECT p.*, count(r.id) as totalReview from Place p left join Review r on p.id = r.placeid group by p.id. But, I don't know how I can derive the totalFavorite and totalPhoto.

  • 写回答

2条回答 默认 最新

  • doushangan3690 2012-05-05 03:27
    关注

    You need to aggregate each table separately. Here is one solution:

    SELECT p.*, 
           totalreview, 
           totalfavorite, 
           totalphoto 
    FROM   place p 
           LEFT OUTER JOIN (SELECT placeid, 
                                   Count(*) AS totalReview 
                            FROM   review 
                            GROUP  BY placeid) r 
                        ON p.placeid = r.placeid 
           LEFT OUTER JOIN (SELECT placeid, 
                                   Count(*) AS totalFavorite 
                            FROM   favorite 
                            GROUP  BY placeid) f 
                        ON p.placeid = f.placeid 
           LEFT OUTER JOIN (SELECT placeid, 
                                   Count(*) AS totalPhoto 
                            FROM   photo 
                            GROUP  BY placeid) ph 
                        ON p.placeid = ph.placeid 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大