小编Bor*_*enk的帖子

优化MySQL查询以使用时间范围获取数据

我正在使用Google Chart API构建产品销售报告的折线图,并且每天使用UNION ALL作为粘合剂,基本上在每天的循环中运行相同的查询来分隔数据.

例如,一年的报告将使用UNION ALL 365次重复查询.

我猜这不是最好的做法 - 例如,如果有人会如此善良并指出我如何优化这个查询的正确方向,我将非常感激.

  SELECT SUM(op.qty) AS qty
  FROM uc_order_products op
  LEFT JOIN uc_orders o ON o.order_id = op.order_id
  LEFT JOIN node n ON n.nid = op.nid
  LEFT JOIN node_type nt ON nt.type = n.type
  WHERE (o.created > 1247695200) AND (o.created < 1247781600)
  AND (o.order_status = 'completed')
  AND (nt.type = 'book' OR nt.type = 'digital_movie')

  UNION ALL 

  SELECT SUM(op.qty) AS qty
  FROM uc_order_products op
  LEFT JOIN uc_orders o ON o.order_id = op.order_id
  LEFT JOIN …
Run Code Online (Sandbox Code Playgroud)

mysql

5
推荐指数
1
解决办法
1087
查看次数

标签 统计

mysql ×1