Eliminar registros de una tabla en base a una unión interna.
Tengo dos tablas en la base de datos de Oracle llamadas collection y collection_h. Tengo que eliminar todos los registros de la tabla collection_h que tengan los mismos campos que la tabla collection.
Tengo que eliminar todos los registros de la tabla collection_h que resulten de la siguiente consulta:
select * from collection inner join collection_h on
collection.pos_protocol_id = collection_h.pos_protocol_id and
collection.terminal_pos_number = collection_h.terminal_pos_number and
collection.cb_file_number = collection_h.cb_file_number and
collection.cb_block_number = collection_h.cb_block_number and
collection.is_stan_batch = collection_h.is_stan_batch and
collection.is_transaction_date = collection_h.is_transaction_date and
collection.is_stan_trans = collection_h.is_stan_trans;
davy.ai
Para eliminar todos los registros de la tabla collection_h que cumplan las condiciones mencionadas anteriormente, puedes utilizar el siguiente comando SQL:
Este comando utiliza una subconsulta con
EXISTS
para verificar si hay registros coincidentes en la tabla collection antes de eliminarlos de la tabla collection_h. Una vez que se cumplan las condiciones, las filas requeridas se eliminarán de la tabla collection_h.