这是一个基于客户订单历史记录表检索“建议”产品的查询。
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>
我正在寻找的是实现最佳的优化查询。 原谅我的英语很差。