У меня есть запрос ниже, который, по-видимому, неявно объединяет 3 таблицы одновременно, я пытаюсь переписать это, чтобы использовать явные объединения, но я не могу обойти это, кажется, что столбец соединения для одно соединение зависит от соединения, которое еще не было завершено.
Это сценарий, который может вместить только неявное соединение?
У меня проблема с этим миром:
AND((t.object_type = 'SOME_VALUE' and i.pro_prod_id=400 and i.gbcert_id || '-Packing' = ta.gbcert_id)
OR (t.object_type in ('V1','V2','V3') and i.gbcert_unique_id = ta.gbcert_id))
Вы видите, что мы решаем, к какому столбцу присоединиться, исходя из того, t.object_type = 'SOME_VALUE'
или t.object_type in ('V1','V2','V3')
Но у меня пока не будет этого значения, потому что пока нет соединения, это похоже на яйцо до проблемы с курицей для меня ..
Это более полная версия запроса:
FROM TRANSACTION t, USG_Award ta,
inbox i,
stores s,
clients cl,
client_types ct
WHERE ct.client_type = cl.client_type
AND ct.usg_aggregation_client IS NULL
AND i.orig_store_code = s.sto_store_code
AND i.orig_store_code = cl.store_code
and ((t.object_type = 'SOME_VALUE' and i.pro_prod_id=400 and i.gbcert_id || '-Pack' = ta.gbcert_id)
OR (t.object_type in ('V1','V1','V1') and i.gbcert_unique_id = ta.gbcert_id))
AND ta.fk_usg_tx = t.pk_usg_tx
Этот запрос работает в его текущей форме, это устаревший код, который я не писал.
Код был продезинфицирован.