【发布时间】:2017-11-18 00:03:17
【问题描述】:
我正在尝试获取硬编码事件的列表并加入包含实际事件的表格,这样我就可以实际查看它们是否已执行。
这是我的查询:
SELECT a.Verification FROM (SELECT 'Verify ID changed' as Verification FROM DUAL
UNION ALL
SELECT 'Verify manual Valve closed' as Verification FROM DUAL
UNION ALL
SELECT 'Verify manual Valve open' as Verification FROM DUAL
UNION ALL
SELECT 'Visually verify Things' as Verification FROM DUAL
) a
LEFT OUTER JOIN JOBEVENTS c ON a.Verification = c.EVENTDESC
WHERE c.EVT_TIME BETWEEN '22-Jan-2017' AND '22-Jan-2017'
当我阅读 LEFT Outer join 的文档时,队列应该始终返回左表中的数据,那么为什么我的查询返回 0 行(JOBEVENTS 事件表中没有任何内容,但留下的硬编码值总是那里)。
我是否误解了 LEFT OUTER JOIN 的工作原理?
【问题讨论】:
-
您的 where 子句依赖于左连接的数据。如果左连接不匹配,那么你的 where 子句也将不匹配。