SQL - Consulta de eliminación con unión
Resuelto
toxik56
Mensajes publicados
12
Estado
Miembro
-
kiko -
kiko -
Hola,
Actualmente estoy tratando de establecer una consulta de eliminación con unión, pero solo he llegado a un resultado parcial.
Tengo dos tablas:
tabla1(NumContrat,X1,Y1,Z1)
tabla2(NumContrat,X2,Y2,Z2)
Por lo tanto, mi deseo es eliminar en tabla1 todos los contratos que figuran en tabla1 y tabla2.
He establecido el siguiente código SQL:
DELETE *
FROM tabla1
WHERE tabla2.NumContrat = tabla1.NumContrat ;
Sin embargo, he creado un programa donde soy yo quien debe definir las filas a eliminar indicando los números de contrato.
Agradezco de antemano su ayuda.
Atentamente.
Actualmente estoy tratando de establecer una consulta de eliminación con unión, pero solo he llegado a un resultado parcial.
Tengo dos tablas:
tabla1(NumContrat,X1,Y1,Z1)
tabla2(NumContrat,X2,Y2,Z2)
Por lo tanto, mi deseo es eliminar en tabla1 todos los contratos que figuran en tabla1 y tabla2.
He establecido el siguiente código SQL:
DELETE *
FROM tabla1
WHERE tabla2.NumContrat = tabla1.NumContrat ;
Sin embargo, he creado un programa donde soy yo quien debe definir las filas a eliminar indicando los números de contrato.
Agradezco de antemano su ayuda.
Atentamente.
3 respuestas
¡Muchas gracias por tu respuesta, Morgothal!
Acabo de probar tu solución. Dado que hay dos atributos "NumContrat" en la tabla1 y en la tabla2, la consulta se bloquea en la línea 3. No entiende de qué tabla estamos hablando a pesar del FROM en la línea 4. En fin, el código funciona perfectamente salvo por este detalle, ¡muchas gracias!
Para aquellos que lleguen a este tema, aquí está el código que retendría:
Saludos.
Acabo de probar tu solución. Dado que hay dos atributos "NumContrat" en la tabla1 y en la tabla2, la consulta se bloquea en la línea 3. No entiende de qué tabla estamos hablando a pesar del FROM en la línea 4. En fin, el código funciona perfectamente salvo por este detalle, ¡muchas gracias!
Para aquellos que lleguen a este tema, aquí está el código que retendría:
DELETE * FROM table1
WHERE NumContrat in
(SELECT table1.NumContrat
FROM table1 INNER JOIN table2 ON table1.NumContrat = table2.NumContrat)
Saludos.
Bien hecho
Hasta luego