【发布时间】:2017-05-08 00:57:51
【问题描述】:
用户表:
Order_items 表:
订单表:
$sql[2] = "SELECT p.p_name, o.created, COUNT(oi.id) AS db FROM products AS p
INNER JOIN order_items AS oi ON oi.product_id = p.id
INNER JOIN orders AS o ON o.id = oi.order_id
GROUP BY p.p_name
ORDER BY db DESC, o.created DESC
LIMIT 1";
$result3= mysqli_query($conn,$sql[2]) or die(mysqli_error());
if (mysqli_num_rows($result3)>0)
{
while ($record = mysqli_fetch_array($result3))
{
echo $record['p_name']." - ".$record['db']." - ".$record['created']."<br/>";
}
}
我想计算订购次数最多的产品名称、售出多少产品以及订购该产品的最后日期。在这种情况下,结果如下所示: Barack - 4 - 2016-12-15 09:36:21 但我的 SELECT 只计算 3。有什么想法可以解决吗?
【问题讨论】:
-
离题,您使用 GROUP BY 错误。 o.created 是每个值,因为它没有在 GROUP BY 语句中命名.. 并从您的表中创建一个 sql 转储并在此处(或在 sqlfiddle.com 上)发布它而不是图像
标签: php mysql database select count