删除SQL中自某个日期以来尚未订购的客户数据

时间:2017-01-23 17:48:02

标签: mysql sql

说我有两张桌子。一个customers表和一个orders表。 customers表包含已下订单的任何人的列表,而orders表包含每个订单的列表。这些表连接在customer.ID = orders.CustomerID上。每个客户都有一个唯一的ID。

orders表格还提供订单的Date。我想删除在特定日期之前没有订购的所有客户行。

我到目前为止的查询如下:

DELETE * FROM customers join orders on customers.id = orders.CustomerID WHERE orders.Date <= 'Date Input form Form';

但是,我担心在指定日期之前和之后订购的客户也将被删除,我不希望这种情况发生。

我正在寻找的逻辑更像是这样:

delete customers where the orders.date is !> than the given date

即使这样,这个逻辑是否会保护在给定日期之前和指定日期之后订购的客户?

我能做些什么来实现这个目标?

1 个答案:

答案 0 :(得分:0)

您是否可以提出与此类似的查询?

DELETE FROM customers WHERE customer.id NOT IN
(SELECT order.customer_id from orders where order.date > cutoff)

客户必须在截止后订购某些东西。