我有兩張桌子。
Table 'customers': customer_id, date_register, name
Table 'orders': order_id, customer_id, order_date
現在我想要在特定日期之前有訂單但在該日期之后沒有訂單的客戶。
我正在使用這個查詢:
SELECT customer_id
FROM orders
WHERE EXISTS (SELECT order_id
FROM orders
WHERE order_date <= '2020-05-12 23:59:59')
AND NOT EXISTS (SELECT order_id
FROM orders
WHERE order_date > '2020-05-12 23:59:59')
但我得到空結果。
我應該使用什么 SQL 查詢?
uj5u.com熱心網友回復:
您可以使用聚合并在HAVING子句中設定條件:
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING MAX(order_date) < '2020-05-13';
uj5u.com熱心網友回復:
您可以嘗試使用主 quary 和左連接中的子查詢根據兩個范圍選擇客戶,然后檢查 not macthing id
select distinct customer_id
FROM orders
LEFT JOIN (
select distinct customer_id
FROM orders
WHERE order_date > '2020-05-12 23:59:59'
) t on t.customer_id = orders.customer_id
and orders.order_date <= '2020-05-12 23:59:59'
WHERE t.id is null
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/374930.html
