使用max的PostgreSQL交叉连接返回null

问题描述

我想在几个表的每一个中选择Modifyed_at列的max()值:

select 
max(a.modified_at) as a_modified_at,max(b.modified_at) as b_modified_at,max(c.modified_at) as c_modified_at 
from a,b,c;

只要每个表至少有1行,它就可以正常工作。 问题是,当只有一个表具有0行时,将为所有表返回null:

null,null,null

有什么解决方案可以为具有行的表返回正确的值? PostgreSQL-10

解决方法

应该使用======== RESTART: C:\Users\user\Desktop\sms.py ======= OK # Text mode OK +CPMS: 1,20,1,20 OK # SIM as preferred message storage OK OK # Set the new message indicator OK +CMT: "+95258451525","20/09/18,23:50:28+08" # phone edited for privacy This text is the SMS sent

OUTER JOIN

但可能更简单的选择是改为使用3个子查询:

select 
max(a.modified_at) as a_modified_at,max(b.modified_at) as b_modified_at,max(c.modified_at) as c_modified_at 
from a outer join b outer join c;

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...