Postgresql 如果对应表上存在键,则posgresql从join返回聚合
我正在尝试执行一个连接操作,并使用下面在posgres中的查询从另一个表返回一个列的聚合Postgresql 如果对应表上存在键,则posgresql从join返回聚合,postgresql,join,foreign-keys,Postgresql,Join,Foreign Keys,我正在尝试执行一个连接操作,并使用下面在posgres中的查询从另一个表返回一个列的聚合 select users.username, users.id, string_agg(keys.service, ',') from users join keys on keys.user_id = users.id where users.username = 'test' group by users.id 当keys表中有相应的值时,查询工作正常,但如果没有,则查询失败。如果keys
select users.username, users.id, string_agg(keys.service, ',')
from users
join keys on keys.user_id = users.id
where users.username = 'test'
group by users.id
当
keys
表中有相应的值时,查询工作正常,但如果没有,则查询失败。如果keys
表中没有与users
表中的id
对应的任何值,我希望它返回一个空字符串,您需要左外部连接到键
返回键中没有相应行的用户
然后,使用coalesce()
将null
键.service
值转换为空字符串
select users.username, users.id,
string_agg(coalesce(keys.service, ''), ',')
from users
left join keys
on keys.user_id = users.id
where users.username = 'test'
group by users.id
使用左连接。伙计,你救了我一天。