如何使用sql查询从重复/旧客户查找订单?

时间:2013-12-21 11:44:20

标签: mysql sql

我正在使用mysql。

我有orders表格列customer_id, order_id, order_date(datetime)现在我想查找2013年12月20日的所有订单,这些订单来自回头客(不是新客户,即客户之前也订购了一些订单) )在单个查询中。

Orders表有其他典型的列,这里也没有提到。请告诉我,我可以提供更多数据。

更新:我们可以在没有子查询的情况下完成吗?如果有,怎么样? (只是好奇)

3 个答案:

答案 0 :(得分:0)

select customer_id , order_id, order_date from orders where order_date between
'20/12/2013 00:00:00' and '20/12/2013 23:59:00' AND
customer_id IN (SELECT customer_id FROM orders where order_date < '20/12/2013')

答案 1 :(得分:0)

假设order_id是表格订单中的主键,而customer_id是外键,您可以使用以下查询和自联接来提取与重复客户相对应的所有order_id列表:

select order_id, customer_id  
from orders a, orders b
where a.customer_id = b.customer_id
and order_date = '20131220'

答案 2 :(得分:-1)

现在检查此查询

 SELECT * FROM `orders` WHERE DATE='20/12/2013' AND customer_id IN (SELECT customer_id FROM yearly_sales WHERE DATE < '20/12/2013' )