Pregunta: | 19798 - BORRAR REGISTROS DE UNA TABLA QUE NO SE ENCUENTRAN EN OTRA |
Autor: | Eduardo Garcia |
Hola Amigos:
Mi problema es sencillo y en ningún manual de SQL encuentro respuesta. Quiero borrar de una tabla TABLA1.DBF los registros que no se encuentren en otra tabla TABLA2.DBF. Puedo hacer consultas a traves de JOIN que me devuelven los registros a borrar, pero no logro hacer lo mismo para su eliminación. Vale aclarar que los comandos SQL los estoy tirando desde un TQUERY de DELPHI y las tablas fueron creadas con FOXPRO. Desde ya, muchas gracias. |
Respuesta: | claudia hernandez |
NO SE SI YA PROBASTE ESTO:
PRIMERO AL OBJETO QUERY LE TIENES QUE PONER EN LA PROPIEDAD REQUESTLIVE:=TRUE LUEGO PONES ESTA INSTRUCCION EN EL SQL DEL QUEY DELETE FROM TABLA1 WHERE TABLA1.CAMPO NOT IN ( SELECT CAMPO FROM TABLA2) SE SUPONE QUE "CAMPO" ES EL CAMPO A TRAVEZ DEL CUAL VAS A RELACIONAR AMBAS TABLAS POR EJEMPLO: DELETE FROM PEDIDOS WHERE CLIENTE NOT IN ( SELECT CVE_CLIENTE FROM CLIENTES) BORRA DE LA TABLA PEDIDOS TODOS LOS REGISTROS DONDE LA CLAVE DE CLIENTE NO SE EXISTA EN LA TABLA CLIENTES SE SUPONE QUE EN LA TABLA PEDIDOS HAY UN CAMPO QUE SE LLAMA CLIENTE Y EN LA TABLA CLIENTES HAY UN CAMPO QUE SE LLAMA CVE_CLIENTE Y AMBOS CONTIENEN UNA CLAVE DE UN CLIENTE. ESPERO QUE NO TE HAYA HECHO BOLAS CON LA EXPLICACION NO ES MUYT DIFICIL. HASTA LA VISTA. CUALQUIER COSA PUEDES ESCRIBIRME A MI CORREO. |