Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/07/2010, 19:01
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error en un delete

Cita:
mmmm no seguimos igual.
Lo que me parece mas raro es que si yo hago un select me trae los datos pero con delete no....

Por que puede ser...?
¿Has intentado podar un árbol cortando la misma rama en la que estás parado?
Bueno, desde la óptica de las bases de datos, eso es lo que estas haciendo: Estás invocando en un subselect la misma tabla sobre la que estás borrando... Eso no se puede hacer porque el DBMS no puede resolver a priori si uno de los registros que el subselect lee no será el mismo que estás borrando, y en ese caso ¿en qué estado está? ¿Borrado o legible?

Bien, el tema es que quieres borrar de la tabla clientes a todos los clientes que pertenezcan al grupo 3 y que al mismo tiempo, su ID sea mayor al menor de todos los clientes registrados...
Al menos eso es lo que se desprende de esto:
Código MySQL:
Ver original
  1. delete from clientes where IdGrupo = 3 and IdCliente >(Select min(IdCliente) from clientes where IdCliente = IdCliente)
Lo que no se comprende es la lógica de lo que estás haciendo: ¿Y si cliente de menor ID pertenece también al grupo 3? Eso haría que se borrase sólo el a partir del segundo miembro del grupo.
Sería mejor, a mi entender, que primero definas un poco mejor cuál es el cliente o clientes que quieres eliminar, es decir: Plantea un criterio que sea consistente y luego veremos cómo hacerlo (aunque me arriesgo a anticipar que para hacer eso requerirás de dos consultas).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)