我在Oracle SQL中有以下代码行:
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
我想将这部分代码更改为WHERE子句,如:
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id
WHERE si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
这不起作用。有谁知道怎么做?
感谢 - 你!
答案 0 :(得分:2)
如果使用WHERE
子句,则会将外连接转换为内连接。所以,把它放在ON
子句中:
LEFT OUTER JOIN
lrmi_dba.rte_session_info si
ON si.rte_session_id AND
si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
嗯,这就是代码的开始。将条件保留在ON
子句中。
答案 1 :(得分:0)
您必须使用具有相同值的列(主要是键列)将表连接到另一个表
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id = another table's column
WHERE si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
样品
FROM abcd.table1 t1
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id = t1.session_id
WHERE si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
答案 2 :(得分:0)
也许您可以使用USING
:
LEFT OUTER JOIN lrmi_dba.rte_session_info si
USING (rte_session_id)
WHERE si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
这假设您与lrmi_dba.rte_session_info
加入的表格也有一个名为rte_session_id
的列。
祝你好运。
答案 3 :(得分:0)
您可以尝试这样:
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id = si.rte_session_id WHERE si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))