04平台项目管理.sql 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. -- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
  2. DROP TABLE IF EXISTS report_project_list;
  3. CREATE TABLE report_project_list AS
  4. /* 项目列表视图 */
  5. DROP VIEW IF EXISTS manage_project_list;
  6. CREATE OR REPLACE VIEW manage_project_list AS
  7. WITH
  8. order_stats AS (
  9. /* 统计每个项目的订单数量 */
  10. SELECT service_id /* 项目编号 */, COUNT(id) AS count /* 订单数量 */
  11. FROM `order` /* 使用反引号包裹order表名 */
  12. WHERE
  13. deleted_at IS NULL
  14. GROUP BY
  15. service_id
  16. )
  17. SELECT
  18. p.id as project_id /* 项目编号 */,
  19. p.title as project_title /* 项目名称 */,
  20. pc.name as category_name /* 项目分类名称 */,
  21. p.price as project_price /* 项目价格 */,
  22. p.duration as service_duration /* 服务时长(分钟) */,
  23. COALESCE(os.count, 0) as order_count /* 下单数量 */,
  24. p.state as project_state /* 状态 */,
  25. p.cover as project_cover /* 项目封面图片 */
  26. FROM
  27. project p
  28. LEFT JOIN project_cate pc ON p.cate_id = pc.id
  29. AND pc.deleted_at IS NULL /* 关联项目分类 */
  30. LEFT JOIN order_stats os ON p.id = os.service_id /* 关联订单统计 */
  31. WHERE
  32. p.deleted_at IS NULL
  33. ORDER BY p.id DESC;