我在其中一个查询中遇到了(+)符号,经过一些研究后我明白这意味着左外连接。但是,我无法理解这个查询。请在没有(+)符号的情况下重写此查询。
select e.masterid from streamed_events e, masters_encode m where
e.masterid = m.id (+) and
COMPANY_ID_R = m.company_id(+) and
m.id is NULL and m.company_id is NULL
感谢您的帮助......
答案 0 :(得分:2)
加号表示JOIN中的可选表
select e.masterid
from streamed_events e
LEFT OUTER JOIN masters_encode m
ON e.masterid = m.id and COMPANY_ID_R = m.company_id
WHERE m.id is NULL and m.company_id is NULL
答案 1 :(得分:0)
select e.masterid
from streamed_events e
left outer join masters_encode m on e.masterid = m.id and COMPANY_ID_R = m.company_id
where m.id is NULL and m.company_id is NULL
虽然该查询有些奇怪。它似乎正在查找streamed_events
中masters_encode
中没有相应行的行,因为这些行将为空m.id
和m.company_id
。奇怪的是,它使用变量COMPANY_ID_R
来匹配m.company_id
,但之后只选择它为空。
也许如果你能解释它想做什么,我可以给出更好的答案。
答案 2 :(得分:0)
select e.masterid
from streamed_events e
left outer join masters_encode on e.masterid= m.id
left outer join COMPANY on COMPANY_ID_R =m.company_id
where m.id is NULL and m.company_id is NULL