Как использовать с помощью удаления из в Oracle Oracle - PullRequest
0 голосов
/ 24 сентября 2019

Попытка сделать внутреннее соединение вроде как в операторе удаления в oracle.Вот код.

delete podium_core.pd_field_tag t1
 using podium_core.pd_field_tag t2
 where t1.nid < t2.nid
   and t1.tag = t2.tag
   and t1.field_nid = t2.field_nid;

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Using в delete оператор не допускается в оракуле.

Попробуйте это:

delete from podium_core.pd_field_tag t1
Where (t1.nid, t1.tag, t1.field_nid) in
(Select t2.nid, t2.tag, t2.field_nid
   From podium_core.pd_field_tag t2
  WHERE t1.nid < t2.nid
    AND t1.tag = t2.tag
    AND t1.field_nid = t2.field_nid);

Cheers !!

0 голосов
/ 24 сентября 2019

Ваш запрос не имеет ничего общего с Oracle.Это синтаксис Postgres.Вместо этого используйте коррелированный подзапрос:

    delete from podium_core.pd_field_tag t1
    where t1.nid < (select t2.nid
                    from podium_core.pd_field_tag t2
                    where t1.tag = t2.tag and
                          t1.field_nid = t2.field_nid
                   );
...