-- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
WITH
    order_stats AS (
        /* 统计每个项目的订单数量 */
        SELECT service_id /* 项目编号 */, COUNT(id) AS count /* 订单数量 */
        FROM `order` /* 使用反引号包裹order表名 */
        WHERE
            deleted_at IS NULL
        GROUP BY
            service_id
    )
SELECT p.id /* 项目编号 */, p.title /* 项目名称 */, pc.name /* 项目分类名称 */, p.price /* 项目价格 */, p.duration /* 服务时长(分钟) */, COALESCE(os.count, 0) /* 下单数量 */, p.state /* 状态 */, p.cover /* 项目封面图片 */
FROM
    project p
    LEFT JOIN project_cate pc ON p.cate_id = pc.id
    AND pc.deleted_at IS NULL /* 关联项目分类 */
    LEFT JOIN order_stats os ON p.id = os.service_id /* 关联订单统计 */
WHERE
    p.deleted_at IS NULL
ORDER BY p.id DESC;
