Итак, у меня есть три таблицы, из которых я пытаюсь получить данные с помощью следующего запроса:
select tats.machine_interval_id as machine_interval_id,
tats.interval_type as interval_type,
tats.interval_category as interval_category,
ops.opstatemnemonic as operational_state,
nptc.categorytype as idle_category,
tats.interval_duration as interval_duration
from temp_agg_time_summary tats
left outer join operationalstates ops on ops.opstateid=tats.operationalstatenumeric
left outer join nptcategories nptc on nptc.categoryid=tats.categorytypenumeric
Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда есть значение, отличное от нуля, из nptcategories
table, он удваивает запись, которая, в свою очередь, отбрасывает любые вычисления, которые я буду делать позже в моих пакетах.Я считаю, что проблема связана с наличием более одного левого внешнего соединения в запросе.Мой вопрос может показаться довольно простым, но я новичок в PL / SQL, так что терпите меня.
Что я хочу знать, так это как я могу использовать несколько левых внешних объединений в запросе без возникновения этой проблемы?Что было бы лучшим способом структурировать этот запрос?
Обновление
Хорошо, поэтому я обнаружил некорректную строку кода, приведенную ниже:
left outer join nptcategories nptc on nptc.categoryid=tats.categorytypenumeric
Кроме того, при использовании различных он удаляет вседубликаты записей, но вызовет ли это использование проблем, о которых я не знаю?Должен ли я сосредоточиться больше на выяснении, почему вышеприведенное объединение не работает должным образом, или это отличное достаточно хорошо?