05店铺列表.sql 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. -- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
  2. /*
  3. 您是一位专业的dba,同时会业务分析。请参考以上数据库的设计文档,给我写一个sql,关联查询出:
  4. 项目名称、项目分类、项目价格、项目时长、项目分成、区域管理、下单数量、状态、图片、开启/关闭
  5. */
  6. WITH RECURSIVE
  7. /* 店铺技师数量统计 */
  8. coach_count AS (
  9. SELECT cu.shop_id, COUNT(DISTINCT cu.id) /* 技师总数 */ AS coach_total
  10. FROM coach_users cu
  11. WHERE
  12. cu.deleted_at IS NULL
  13. GROUP BY
  14. cu.shop_id
  15. ),
  16. /* 店铺服务项目数量统计 */
  17. service_count AS (
  18. SELECT ss.shop_id, COUNT(DISTINCT ss.id) /* 服务项目总数 */ AS service_total
  19. FROM shop_services ss
  20. WHERE
  21. ss.deleted_at IS NULL
  22. GROUP BY
  23. ss.shop_id
  24. )
  25. SELECT
  26. si.id /* 店铺编号 */,
  27. sar.shop_name /* 店铺名称 */,
  28. sar.contact_name /* 店铺负责人 */,
  29. sar.contact_phone /* 店铺电话 */,
  30. sar.shop_address /* 店铺位置 */,
  31. sar.longitude /* 经度 */,
  32. sar.latitude /* 纬度 */,
  33. sar.operating_area /* 面积 */,
  34. sar.business_hours /* 营业时间 */,
  35. sar.rating /* 店铺星级 */,
  36. sar.storefront_photo /* 店铺门头照 */,
  37. sar.storefront_front_photo /* 店铺门头照正面 */,
  38. sar.storefront_back_photo /* 店铺门头照背面 */,
  39. sar.state /* 认证状态 */,
  40. COALESCE(cc.coach_total, 0) /* 技师总数 */ AS coach_total,
  41. COALESCE(sc.service_total, 0) /* 服务项目总数 */ AS service_total
  42. FROM
  43. shop_infos si
  44. LEFT JOIN shop_auth_records sar ON si.auth_record_id = sar.id
  45. AND sar.deleted_at IS NULL
  46. LEFT JOIN coach_count cc ON si.id = cc.shop_id
  47. LEFT JOIN service_count sc ON si.id = sc.shop_id
  48. WHERE
  49. si.deleted_at IS NULL
  50. ORDER BY si.id DESC;