Tengo el siguiente código que funciona bien en MS SQL Server:Eliminar la combinación izquierda en Oracle 10g
delete grp
from grp
left join my_data
on grp.id1 = my_data.id1
and grp.id2 = my_data.id2
and grp.id3 = my_data.id3
and grp.id4 = my_data.id4
where my_data.id1 is NULL
Básicamente, quiero borrar todos los sucesos que se pueden encontrar en grp
y no tienen ningún equivalencia in my_data
. Lamentablemente, no funciona en Oracle 10g. Intenté usar la sintaxis anterior para la combinación izquierda (+) pero tampoco funciona. De esta manera:
delete grp
from grp,
my_data
where grp.id1 = my_data.id1 (+)
and grp.id2 = my_data.id2 (+)
and grp.id3 = my_data.id3 (+)
and grp.id4 = my_data.id4 (+)
and my_data.id1 is NULL
Una cláusula IN
haría obras si no dispone de varias teclas, pero no veo cómo podría usarlo con mis datos. ¿Entonces cual es la alternativa?
SQL Server apoyo se une en eliminar y actualizar es una extensión no estándar para SQL. –
Shannon Separación: MySQL también –