SQL优化查询以获取建议的产品

时间:2012-11-25 22:26:07

标签: sql optimization

  

可能重复:
  SQL Query Optimization Suggested Products

这是一个基于客户订单历史记录表检索“建议”产品的查询。

SELECT 
   A.id_product, COUNT( A.id_product ) AS num
FROM  
   orders A, orders B
WHERE 
   A.id_order = B.id_order
   AND B.id_product IN  (-**COMMA-SEPARETED-IDs**-)
   AND A.id_product NOT IN (-**COMMA-SEPARETED-IDs**-)
GROUP BY 
   A.id_product

这是表格定义:

ORDERS (id_order, id_product, quantity);

实施例:     T1(1,1,2);     T2(1,2,2);     T3(1,3,2);     T4(2,2,2);     T5(2,1,2);

我想要做的是,给定一个id_product(比方说2),就是要检索所有id_prodoct,这些id_prodoct存在于其中一个订单的产品是给定订单的订单中。使用给定的示例,我将向我的客户建议产品1和3,因为id_product = 2存在于订单1和订单2.这些订单中的其他产品是3和1.因此我将建议产品3和产品1。 / p>

我正在寻找的是实现最佳的优化查询。 原谅我的英语很差。

0 个答案:

没有答案