0

可能重复:
SQL 查询优化建议产品

这是一个根据客户的订单历史记录表检索“推荐”产品的查询。

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_prodect ,这些 id_prodect 存在于其中一个订单产品是给定产品的订单中。使用给定的示例,我将向我的客户建议产品 1 和 3,因为 id_product=2 存在于订单 1 和订单 2 中。这些订单中的其他产品是 3 和 1。所以我将建议产品 3 和产品 1。

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

4

0 回答 0