要删除所有不满足所有条件的行(按组),可以使用SQL中的HAVING
子句结合GROUP BY
子句来实现。以下是一个示例:
假设我们有一个名为orders
的表,结构如下:
| order_id | customer_id | order_date | total_amount | |----------|-------------|------------|--------------| | 1 | 1 | 2023-01-01 | 100 | | 2 | 1 | 2023-01-02 | 50 | | 3 | 2 | 2023-01-03 | 200 | | 4 | 2 | 2023-01-04 | 150 | | 5 | 3 | 2023-01-05 | 75 |
假设我们要删除所有总金额小于100的客户的所有订单。可以使用以下SQL查询:
DELETE FROM orders
WHERE customer_id IN (
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING SUM(total_amount) < 100
);
customer_id
分组。HAVING
子句筛选出总金额小于100的客户。orders
表中所有属于上述子查询结果中的客户的订单。通过这种方式,你可以有效地删除所有不满足所有条件的行(按组)。
领取专属 10元无门槛券
手把手带您无忧上云