-1

我有两张表,产品和销售。在产品表中,所有用户都添加产品。当进行销售时,销售表会更新有关产品的所有信息,包括添加该产品的用户。

产品表

id|Product Name|User|Price|Date

销售表

id|Product Name|Quantity|Seller|Price

卖方和用户具有相同价值的地方

我的问题是,当我展示产品时,我想要它们以便销售更多产品的用户,他的所有产品应该在顶部,而其他在 Products Table 中有产品但没有任何销售的用户应该在底部。

4

1 回答 1

3

所以这只是表名和列名的假设:

SELECT   a.UserID, 
         Count(a.ProductID) as TotalCount
  FROM   Sales a INNER JOIN Products b
           ON a.ProductID = b.ProductID
GROUP BY a.UserID
ORDER BY TotalCount desc

UserID 是销售产品的人的 ID
ProductID是您的产品的 ID,它是连接两个表的字段
COUNT()是聚合函数的名称,它计算每个用户的记录。

PS:请在您的问题中包含表格的架构。

更新 1

如果是这种情况,您将不得不使用LEFT JOIN

  SELECT a.ProductName,
         COUNT(b.Seller) as TotalSellerCount
    FROM Products a LEFT JOIN Sales b
       ON a.User = b.Seller
GROUP BY a.ProductName
ORDER BY TotalSellerCount desc
于 2012-06-19T08:46:51.980 回答