SQL - Borrar todos menos...

 
Vista:

Borrar todos menos...

Publicado por Nelek (1 intervención) el 08/01/2007 11:47:36
Hola,

la situación es: Tengo dos bases de datos (principal y secundaria), en la secundaria aparecen multitud de elementos con la misma ID de pedido y un par de campos más (entre ellos fechas), en la principal aparecen solo un elemento por cada ID de pedido que hay en la secundaria (da igual cuantas vece esten repetidas, mientras haya una... sobra).

Los elementos de la secundaria se borran automaticamente cuando los pedidos sobrepasan un cierto periodo de tiempo establecido (p. ej: 3 meses).

La cosa esta en que, he de borrar de la principal el elemento con la ID que ya no se de en la secundaria. Hasta el momento he logrado hacer la consulta que me permite saber que IDs estan en la base de datos secundaria, y funciona (cuando borro manualmente todos los elementos de una id, ya no sale en mi consulta intermedia). El problema esta en que no logro borrar unica y exclusivamente el elemento de la principal cuya ID no se encuentre en esa consulta intermedia.

Lo que busco es algo como:

Borra_todo_excepto_lo_que_esta_en (grupo)

alguien me puede decir como????

Gracias por anticipado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Borrar todos menos...

Publicado por Isaías (5072 intervenciones) el 08/01/2007 17:52:55
Primero prueba sacando los elementos de la primaria, que no esten en la secundaria.

SELECT * FROM tabla_primaria WHERE ColID NOT IN(SELECT id FROM tabla_secundaria)

Si esto es real, entonces borralos

DELETE tabla_primaria WHERE ColID NOT IN(SELECT id FROM tabla_secundaria)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar