我正在使用mysql。
我有orders
表格列customer_id, order_id, order_date(datetime)
现在我想查找2013年12月20日的所有订单,这些订单来自回头客(不是新客户,即客户之前也订购了一些订单) )在单个查询中。
Orders
表有其他典型的列,这里也没有提到。请告诉我,我可以提供更多数据。
更新:我们可以在没有子查询的情况下完成吗?如果有,怎么样? (只是好奇)
答案 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' )