【发布时间】:2020-05-15 09:52:37
【问题描述】:
我有一个查询,其中包含一个子查询,该子查询引用了我的查询所连接的表之一,但我还需要对从 WHERE 子句中的子查询返回的字段进行评估。
这是当前查询(粗略示例)-
SELECT t1.first_name, t1.last_name,
(SELECT created_at FROM customer_order_status_history WHERE order_id=t2.order_id AND order_status=t2.order_status ORDER BY created_at DESC LIMIT 1) AS order_date
FROM customers AS t1
INNER JOIN customer_orders as t2 on t2.customer_id=t1.customer_id
我的子查询当前正在返回 customer_order_status_history 表中的最新日期,但在我的查询中,我想对 WHERE 子句中的子查询进行评估,这样我只需要最近的 created_at 日期大于特定日期条件(即系统日期 - 5 天)。因此,在某种程度上,这是 customer_orders 和 customer_order_status_history 表的条件连接,只有当 customer_order_status_history 中的最新记录(按 created_at 降序排序)大于系统日期 - 5 天时,才应返回最终结果。
提前为糟糕的解释道歉,但希望我在这里想要达到的目标很清楚。此外,我没有提出这个数据库架构,并且鉴于项目限制,我无法更改架构。
谢谢!
【问题讨论】:
-
最好发布任务,而不是你决定解决它的方式......
标签: sql postgresql