我遇到查询问题,有时会返回一个空字段。我试图使用CASE和COALESCE,但是我可能错误地构造了查询。
结果中需要做的是,如果b.user_id返回空,则将值从a.useracctid复制到b.user_id。我希望这是有道理的???
这是我的查询,无论我尝试了什么错误。
感谢您提供的任何想法或提示
SELECT b.user_id,a.responsetime,a.latitude,a.longitude,
a.status,a.updatetime,c.address
FROM callouts_response a
LEFT JOIN ldap_user_accounts b on a.useracctid = b.id
LEFT JOIN callouts c on a.calloutid = c.id
WHERE calloutid = :cid
最佳答案
不知道您如何使用COALESCE()
,但是您可以这样做
SELECT COALESCE(b.user_id,a.useracctid) as somecol,
a.responsetime,
a.latitude,
a.longitude,
a.status,
a.updatetime,
c.address
FROM callouts_response a
LEFT JOIN ldap_user_accounts b on a.useracctid = b.id
LEFT JOIN callouts c on a.calloutid = c.id
WHERE a.calloutid = :cid