PHP / MYSQL计数订单

时间:2016-12-15 12:10:02

标签: php mysql

这是数据库表:

Users

Order_items

$sql[2] = "SELECT u.* , oi.* , COUNT(oi.user_id) AS count 
           FROM users u, order_items oi 
           WHERE u.id=oi.user_id ";
$result3= mysqli_query($conn,$sql[2]) or die(mysqli_error());
if (mysqli_num_rows($result3) > 0) {
    while ($record = mysqli_fetch_array($result3)) {
        echo $record['count'];
    }
}

我想要计算每个用户的订单数量。示例:像托马斯有3个订单,但我的代码是写4,我想写托马斯(3),格拉西安(1)。知道怎么解决吗?

2 个答案:

答案 0 :(得分:0)

使用此查询:

SELECT u.id,
       COUNT(oi.user_id) AS orderCount
FROM users u
LEFT JOIN order_items oi
    ON u.id = oi.user_id
GROUP BY u.id

我们从user_id表中计算order_items的原因是由于给定用户没有订单的边缘情况。在这种情况下,我们希望确保他的计数显示为零。 COUNT函数忽略了NULL s,这就是我们想要的。

答案 1 :(得分:0)

还有另一种使用子查询执行sql查询的方法:

tf.unpack