我有一个查询,我想要选择所有拥有特定product_id订单的客户(例如12,13)。我为此做了一个小提琴。有一个订单表,其中包含order_id和customer_id。 Order_detail表有order_id和product_id。这些是样本表。原始表包含超过30000条记录。您可以帮我优化查询或指导我这样做吗?
答案 0 :(得分:1)
select c.* from customer_detail c
inner join orders o on o.customer_id = c.customer_id
inner join order_detail od on od.order_id = o.order_id
where od.product_id in (12,13);
我认为这就是你要找的东西。
答案 1 :(得分:1)
您可以使用以下最终查询 -
SELECT customer_id,first_name
FROM customer_detail cd
JOIN orders ors ON cd.customer_id=ors.customer_id
JOIN order_detail od ON od.order_id=ors.order_id
WHERE product_id IN (12,13);
注意:下面的字段应编入索引 - customer_id IN订单表 order_id AND product_id IN order_detail TABLE