我有两个具有这些结构的表:
-
客户
- id_customer
- customer_name
- customer_email
- customer_address
-
订单
- id_order
- order_number
- customer_id
- order_price
- 付款
- order_date
我需要一个查询,它为我提供了来自"客户"的所有"id_customer",这些"客户"位于表"订单"/"customer_id"中,其中"order_price">"付款"和"odrer_date"至少在 30 天前
SQL的核心是一种操作集合的方法。从子查询开始,以确定customer_id
值集与orders
表中的条件匹配。
SELECT DISTINCT customer_id
FROM orders
WHERE order_price > payment
AND order_date <= CURDATE() - INTERVAL 30 DAY
然后,使用该子查询从customers
表中获取数据。
SELECT *
FROM customers
WHERE id_customer IN (
SELECT DISTINCT customer_id
FROM orders
WHERE order_price > payment
AND order_date <= CURDATE() - INTERVAL 30 DAY
)
使用此查询
Select * from customers c inner join orders o On c. id_cusomer = o.customer_id
where o.order_price > o.payment and o.order_date = CURDATE() - INTERVAL 30 DAY