Sql 在查询中使用多个表返回空值
我是SQL新手,只知道最基本的知识。如果有人能在下面的问题上提供帮助,我将不胜感激。这将返回所有字段有值的值,但是对于LO.Filurecode,如果有空值,则需要将其返回给alow me,以识别和填充缺少的值。谁能帮我看看下面的酷儿Sql 在查询中使用多个表返回空值,sql,toad,Sql,Toad,我是SQL新手,只知道最基本的知识。如果有人能在下面的问题上提供帮助,我将不胜感激。这将返回所有字段有值的值,但是对于LO.Filurecode,如果有空值,则需要将其返回给alow me,以识别和填充缺少的值。谁能帮我看看下面的酷儿 alter session set current_schema=maximo; select l.location, l.description, l.siteid, l.type, l.status, lh.parent, lo.failurecode, l
alter session set current_schema=maximo;
select
l.location,
l.description,
l.siteid,
l.type,
l.status,
lh.parent,
lo.failurecode,
lo.locpriority,
L.PLUSGSAFETYCRIT,
L.PLUSGENVCRIT,
L.PLUSGCOMCRIT,
L.PLUSGEXREGISTERED,
l.ta,
l.taqamanufacturer,
l.modelnum,
l.PLUSGLOCREFERENCE,
l.PLUSGPHYSLOC
from
locations l, lochierarchy lh, locoper lo
where
l.location = lh.location
and l.location = lo.location
and l.siteid = lo.siteid
and l.siteid = lh.siteid
and l.type ='OPERATING'
and lh.systemid ='PRIMARY'
and l.siteid ='COA'
order by location
以下是经过一些重构的查询:
SELECT l.location,
l.description,
l.siteid,
l.type,
l.status,
lh.parent,
lo.failurecode,
lo.locpriority,
l.PLUSGSAFETYCRIT,
l.PLUSGENVCRIT,
l.PLUSGCOMCRIT,
l.PLUSGEXREGISTERED,
l.ta,
l.taqamanufacturer,
l.modelnum,
l.PLUSGLOCREFERENCE,
l.PLUSGPHYSLOC
FROM locations l
LEFT JOIN lochierarchy lh ON lh.location = l.location
AND lh.siteid = l.siteid
AND lh.systemid = 'PRIMARY'
LEFT JOIN locoper lo ON lo.location = l.location
AND lo.siteid = l.siteid
WHERE l.type ='OPERATING'
and l.siteid ='COA'
ORDER BY l.location
我使用了显式连接语法(内部连接,左连接
),而不是您使用的老式语法。它更具可读性,也更容易理解
希望这会有所帮助。为此目的,请使用左或右外部联接。。。。这也会给你空白的数据..谢谢Joel感谢help@user4094290如果查询解决了您的问题,请不要忘记将您的问题标记为“已回答”Joel我可以再问一个问题吗?是否可以为lochierarchy表包含空值,以及该表中是否会出现一些空值,因为当我检查locations表时,该表返回的记录仍然比queery中的记录多。@user4094290我编辑了我的查询以允许表中的空值
lochierarchy
谢谢这回答了我的问题谢谢帮助。