PHP/MYSQL 统计订单

标签 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'];
    }
}

我想统计每个用户有多少订单。示例:像 Thomas 有 3 个顺序,但我的代码写的是 4,我想写 Thomas (3),Gracian(1)。知道如何解决它吗?

最佳答案

使用这个查询:

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

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

关于PHP/MYSQL 统计订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163863/

相关文章:

php 准备语句 SQLSTATE[42000] : Syntax error or access violation: 1064

php - 如何将数组传递给 laravel 5.4 中的@slot?

php - 检查元素的数量是否等于特定数量 PHP

php - Mysql 从最大到最小对行和列进行排名并在 php 代码中显示排名?

php - 如何使用 PHP 过滤 MySQL 中的数据(一对多关系)

MySQL - 基于 SELECT 查询的 UPDATE 查询

mysql - 由于选择查询而锁定表?

php - 照亮\Http\Exceptions\PostTooLargeException - Laravel 5

javascript - 如何在 react.js 中包含 html View 文件

php - 如何在mysql中应用多词搜索