Foros del Web » Programación para mayores de 30 ;) » .NET »

Se puede hacer delete con 2 tablas???

Estas en el tema de Se puede hacer delete con 2 tablas??? en el foro de .NET en Foros del Web. Estoy intentando borrar varios registros de una tabla dependiendo de otras tablas. Es decir quiero que en el where sean valores de 2 tablas: DELETE ...
  #1 (permalink)  
Antiguo 16/05/2005, 05:24
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Se puede hacer delete con 2 tablas???

Estoy intentando borrar varios registros de una tabla dependiendo de otras tablas.
Es decir quiero que en el where sean valores de 2 tablas:

DELETE FROM Clientes INNER JOIN
Usuarios ON Clientes.UsIdCli = Usuarios.UsIdCli INNER JOIN
UsuariosServicios ON Usuarios.UsId = UsuariosServicios.UsServIdUs
WHERE (UsuariosServicios.UsServIdServ = 1) AND (Clientes.UsIdCli = 2)

Es posible hacer esto???
  #2 (permalink)  
Antiguo 16/05/2005, 05:31
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Hazlo así:

DELETE FROM Clientes Where Clientes.UsIdCli=2 AND
Clientes.UsIdCli IN
(Select UsIdCli FROM USUARIOS
INNER JOIN UsuariosServicios on UsuariosServicios.UsServIdUs=Usuarios.UsId
where UsuariosServicios.UsServIdServ=1)
)
  #3 (permalink)  
Antiguo 16/05/2005, 07:39
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Imposible de sacarla :-(

La sql que quiero seria asi:

DELETE FROM UsuariosServicios WHERE (UsServIdServ = 2) AND (UsServIdUs IN
(SELECT Clientes.UsIdCli
FROM UsuariosServicios INNER JOIN
Usuarios ON UsuariosServicios.UsServIdUs = Usuarios.UsId INNER JOIN
Clientes ON Usuarios.UsIdCli = Clientes.UsIdCli
WHERE (Clientes.UsIdCli = 2)))

pero no me borra lo que quiero que seria todos los UsServIdServ = 2 y los que fueran del cliente 2 tambien.
Sabes porque????

Gracias.
  #4 (permalink)  
Antiguo 16/05/2005, 07:57
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Ya ta

Ya lo consegui, no hace falta que me respondais. Por si le interesa a alguien:

DELETE FROM UsuariosServicios
WHERE (UsServIdServ = 2) AND (UsServIdUs IN
(SELECT Usuarios.UsId
FROM UsuariosServicios INNER JOIN
Usuarios ON UsuariosServicios.UsServIdUs = Usuarios.UsId INNER JOIN
Clientes ON Usuarios.UsIdCli = Clientes.UsIdCli
WHERE (Clientes.UsIdCli = 2)))
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 13:38.