SQL Developer "отключен от остальной части графика соединения"
У меня есть следующий SQL:
select <misc things>
from pluspbillline
left outer join workorder
on workorder.siteid=pluspbillline.siteid
and workorder.wonum = pluspbillline.refwo
and workorder.orgid = pluspbillline.orgid
left outer join ticket
on ticket.ticketid = pluspbillline.ticketid
and ticket.class=pluspbillline.ticketclass
left outer join pluspsalesorder
on pluspsalesorder.salesordernum=pluspbillline.salesordernum
and pluspsalesorder.siteid=pluspbillline.siteid
В Oracle SQL Developer 4.0.0.13 (подключен к базе данных DB2), я получаю squiggly строку под следующим курсивом: "from pluspbillline" и "левый внешний порядок соединения".
Предупреждение говорит, что "pluspbillline отключается от остальной части графика соединения". Что это значит?
Ответы
Ответ 1
Я не уверен, что заставляет Oracle SQL Developer давать ошибку. Но я помещаю этот комментарий здесь, чтобы отформатировать его должным образом.
Граф соединения может выглядеть примерно так:
pluspbillline ------+----< workorder
|
+----< ticket
|
+----< pluspsalesorder
Линии на графике могут быть помечены полями объединения. Но это дает вам основную идею.
Я не вижу причин, по которым вы получаете это предупреждение. Возможно, есть окошка с именем столбца на вашем SQL-сервере? Или некоторые причуды в интерфейсе Oracle, что он не понимает метаданные DB2 правильно? Я предложил попробовать инструмент IBM, чтобы убедиться, что это просто их программа.
Ответ 2
Я тоже это получил. Я не совсем уверен, как сформулировать это, но ошибка, кажется, основана на логическом потоке кода.
По существу, потому что вы упоминаете таблицы pluspbillline
до того workorder
, я думаю, что он ожидает, что присоединиться к быть on pluspbillline.siteid=workorder.siteid
и т.д.
Похоже, что порядок условий объединения должен перетекать от первых идентифицированных таблиц к последним. Поэтому следующее должно сделать его счастливым:
plusbillline to workorder on pluspbillline.siteid=workorder.siteid...
"" to ticket on pluspbillline.ticketid = ticket.ticketid...
"" to pluspsalesorder on pluspbillline.salesordernum = pluspsalesorder.salesordernum...
Я не верю, что это изменило бы работу оракула (при условии, что вы не используете подсказки оптимизатора), поэтому я бы потрудился изменить, только если вы ненавидите волнистые линии.