You need to enable JavaScript to run this app. PostgreSQL查询如何展示schedules表无对应记录的所有作业
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL查询如何展示schedules表无对应记录的所有作业

问题原因
  • 原语句使用INNER JOIN关联sampleco_schedules表,仅会保留两边都存在匹配关系的记录,因此没有对应日程记录的作业会被直接过滤
  • 当作业无日程时,min(sc.start_time)、max(sc.end_time)返回NULL,to_char处理后结果为空白,没有替换为指定提示文本
修改方案

修改后的完整查询语句如下:

select
    j.job_id as "Job No",
    c.business_name as "Customer",
    to_char(j.date_created, 'DD/MM/YYYY') as "Created Date",
    coalesce(to_char(min(sc.start_time), 'DD/MM/YYYY'), 'no schedule') as "Schedule Start",
    coalesce(to_char(max(sc.end_time), 'DD/MM/YYYY'), 'no schedule') as "Schedule End",
    to_char(j.date_due, 'DD/MM/YYYY') as "Due Date"
from sampleco_jobs j
join sampleco_customers c
on j.customer_id = c.customer_id
left join sampleco_schedules sc
on j.job_id = sc.job_id
where c.customer_id = 29726
group by j.job_id, c.business_name, j.date_created, j.date_due;
说明
  • 把原语句中关联sampleco_schedules的JOIN改为LEFT JOIN,即可保留所有目标客户下的作业记录,无论是否存在关联日程
  • 使用COALESCE函数判断日期转换结果,当值为NULL时自动替换为no schedule
  • 额外补充了j.date_created、j.date_due到GROUP BY子句中,符合PostgreSQL的严格分组模式要求,避免部分版本数据库执行报错

内容的提问来源于stack exchange,提问作者kiwi888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 02:54:02