两张桌子的不同数量

时间:2011-02-22 04:47:42

标签: mysql

我有3张桌子

products TABLE
  FIELDS: productid, catid,...

sales TABLE
  FIELDS: trackid, productid,...

promotion TABLE
  FIELDS: trackid, productid,...

现在我需要像

这样的东西
ProductID     CatID     TotalSales      TotalPromotion
    1           1          10                3 

我怎样才能做到这一点?

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

Join以上三个表格。

答案 1 :(得分:0)

试试这个:

SELECT a.productid, 
       a.catid, 
       a.totalsales, 
       b.totalpromotion 
FROM   (SELECT p.productid, 
               p.catid, 
               COUNT(s.productid) AS totalsales 
        FROM   products p 
               LEFT JOIN sales s 
                 ON p.productid = s.productid 
        GROUP  BY p.productid, 
                  p.catid) a 
       INNER JOIN (SELECT p.productid, 
                          p.catid, 
                          COUNT(s.productid) AS totalpromotion 
                   FROM   products p 
                          LEFT JOIN promotion s 
                            ON p.productid = s.productid 
                   GROUP  BY p.productid, 
                             p.catid) b 
         ON a.productid = b.productid 

答案 2 :(得分:0)

希望得到这个帮助,

  

选择a.productID,a.catID,   b.totalSales,c.Totalpromotion from   产品内部联接销售b   a.catID = b.CatID内部联接促销c   在a.CatID = C.CatID