Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Sentencia delete

Estas en el tema de Sentencia delete en el foro de Bases de Datos General en Foros del Web. NECESITO HACERLO via php o via consulta sql por fa ayudenme!! tengo 2 tablas //tabla login cod nom estado y otra tabla llamada inscritos con ...
  #1 (permalink)  
Antiguo 07/03/2004, 16:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 20 años, 4 meses
Puntos: 0
Sentencia delete

NECESITO HACERLO via php o via consulta sql por fa ayudenme!!


tengo 2 tablas
//tabla login
cod
nom
estado

y otra tabla llamada inscritos con un solo campo
//tabla inscritos
cod



quisiera que la tabla login solo contenga los registros que tiene la tabla inscritos como lo puedo hacer??? y que los demas registros de login que no cumplan la condicion sean eliminados...
  #2 (permalink)  
Antiguo 08/03/2004, 03:53
Usuario no validado
 
Fecha de Ingreso: marzo-2004
Ubicación: Barna
Mensajes: 18
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola,

podrias ser un poco mas concreto con lo que quieres?

Si deseas que se borren automaticamente de la tabla login al borrar un elemento de la tabla inscritos, basta con que sea una 'foreign key on delete cascade'.

Saludos,

--------------------
Chimo
  #3 (permalink)  
Antiguo 08/03/2004, 07:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 20 años, 4 meses
Puntos: 0
El objetivo es borrar los registros de login siempre y cuando no se encuentren en la tabla inscritos



Por ejemplo:

login (esta tabla tiene mas o menos 2000 registros)
c001 //cod
mireya //nom
activo //estado

c002
pedro
activo

c003
mireya
activo


c004
carlos
inactivo

inscritos (esta tabla tiene mas o menos 700 registros)
c001 //cod

c004

los que estan de color rojo seran eliminados
al final tendre una tabla identica a inscritos pero con mas campos(nom y estado)
  #4 (permalink)  
Antiguo 08/03/2004, 10:08
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Prueba con algo así

DELETE FROM login WHERE cod NOT IN(SELECT cod FROM inscritos)

En principio eso debería funcionar

Un saludo
  #5 (permalink)  
Antiguo 08/03/2004, 10:18
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
asi es, pero mysql no soporta aún subconsultas. Lo mas que se puede hacer es:

DELETE FROM login WHERE cod NOT IN('c001','c004')

es decir pasarle un arreglo con los datos que deberian estar en ambas tablas, pero no se ve bonito pasarle un arreglo de 700 valores.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #6 (permalink)  
Antiguo 08/03/2004, 10:29
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Pues de mysql no sé nada, no lo he utilizado nunca, pero vamos a probar con una consulta más o menos así

DELETE login.* FROM login Right JOIN inscritos ON login.cod = inscritos.cod WHERE (login.cod) Is Null

puedes poner el orden al reves, el resultado debería ser el mismo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:42.