说我有两张桌子。一个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
即使这样,这个逻辑是否会保护在给定日期之前和指定日期之后订购的客户?
我能做些什么来实现这个目标?
答案 0 :(得分:0)
您是否可以提出与此类似的查询?
DELETE FROM customers WHERE customer.id NOT IN
(SELECT order.customer_id from orders where order.date > cutoff)
客户必须在截止后订购某些东西。