【问题标题】:SQL/PHP: Show top 3 most sold products from databaseSQL/PHP:显示数据库中最畅销的 3 种产品
【发布时间】:2016-01-07 11:44:43
【问题描述】:

我有一个包含以下表格的数据库:

 - product (product_id / name / price / image_id / description)
 - order ( order_id / date / status / email )
 - order_count ( order_id / product_id / number )
 - image (image_id / image_link )

我想在我的主页上显示 3 个最畅销的产品,但我无法做到这一点。

我试过这个:

$sql = "SELECT" * 
FROM 'product' INNER JOIN 'afbeelding' 
WHERE 'product'.'image_id' = 'afbeelding'.'image_id'
GROUP BY 'product_id'
ORDER BY 'product_id' DESC
LIMIT 3;";

我似乎无法找出在此查询中放置'count' 的位置和方法。 谢谢

【问题讨论】:

  • 将 count(*) 放入选择列表中。
  • 我尝试了你所有的建议,但在重新加载显示 php/sql 的页面时,大多数都返回错误 500 或根本没有返回。
  • 'product' 是一个字符串 `product` 是一个表标识符

标签: php mysql sql mysqli count


【解决方案1】:

试试这个:

$sql = "SELECT SUM(order_count.number) AS total, image.image_link AS image_link 
FROM product JOIN order_count 
ON product.product_id = order_count.product_id 
JOIN image ON product.image_id = image.image_id
GROUP BY order_count.product_id 
ORDER BY total DESC 
LIMIT 3";

【讨论】:

  • 非常感谢,这最终奏效了!如果你在荷兰,我会请你喝啤酒! ;-)
  • 还有一件事.. 我还需要显示我链接到产品的图像.. 只是无法显示任何图像.. 关于我需要放置的任何想法一段代码(我认为这是我需要显示图像的代码)product.image_id = afbeelding.image_id
  • 我编辑了代码以包括加入图像数据库表,试试它是否适合你。
  • 给你两杯啤酒!再次感谢!
【解决方案2】:

请尝试以下查询:

$sql = "SELECT p.*,af.*, IFNULL(SUM(oc.number), 0) as total_quantity 
FROM (`product` as p) 
INNER JOIN `afbeelding` as af ON `af`.`image_id` = `p`.`image_id` 
INNER JOIN `order_count` as oc ON `oc`.`product_id` = `p`.`product_id` 
GROUP BY `p`.`product_id` ORDER BY `total_quantity` DESC LIMIT 3";

【讨论】:

    【解决方案3】:

    试试这个:

    SELECT * FOM products p INNER JOIN order_count oc 
    ON p.product_id=oc.product_id 
    GROUP BY 'product_id'
    ORDER BY 'product_id' DESC
    LIMIT 3;";
    

    【讨论】:

      【解决方案4】:

      选择 p.name 作为“产品名称”,选择 x.total 作为“总计”
      来自产品 p
      内连接(选择 product_id 作为 product_id,sum(number) 作为 order_count group by product_id 的总和)x
      在 x.product_id = p.product_id
      按 x.total DESC 限制 3 排序;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2020-03-06
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多