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

Donde esta mi error sentencia DELETE

Estas en el tema de Donde esta mi error sentencia DELETE en el foro de Mysql en Foros del Web. tengo 3 tablas relacionas producto subcategoria categoria y hago el sigte. select select * FROM producto p,subcategoria s,categoria c WHERE p.codscateg=s.codscateg and c.codcateg=s.codcateg and s.codcateg=2 ...
  #1 (permalink)  
Antiguo 29/01/2008, 19:17
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Donde esta mi error sentencia DELETE

tengo 3 tablas relacionas
producto
subcategoria
categoria

y hago el sigte. select

select * FROM producto p,subcategoria s,categoria c WHERE p.codscateg=s.codscateg and c.codcateg=s.codcateg and s.codcateg=2

Me muestra los registros que pertenen a la categoria=2
Quiero hacer lo mismo pero en vez de hacer una seleccion eliminar los registros y hago lo siguiente:

DELETE FROM producto p,subcategoria s,categoria c WHERE p.codscateg=s.codscateg and c.codcateg=s.codcateg and s.codcateg=2

Mysql me manda este error y no se porque espero su ayuda
You have an error in your SQL syntax near 'p,subcategoria s,categoria c WHERE p.codscateg=s.codscateg and c.codcateg=s.codc' at line 1
  #2 (permalink)  
Antiguo 29/01/2008, 22:40
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Donde esta mi error sentencia DELETE

Hola franko1809, cómo vas??

Mira este link, quizás te ayude:
http://mysql.conclase.net/curso/index.php?sen=DELETE

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 30/01/2008, 13:30
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Donde esta mi error sentencia DELETE

Hola, yo también tengo un problema en mi mi bd, necesito borrar los registros duplicados de una de mis tablas, la primera idea que se me ocurrió fue utilizar esto:

DELETE *
FROM `ASPIRANTES` a, (

SELECT codigo , count( * )
FROM `ASPIRANTES`
GROUP BY codigo
HAVING count ( * ) > 1
)b
WHERE a.codigo = b .codigo

pero me marca error en la sintaxis, alguien podría decirme como borrar los registros duplicados, sé que con select distinct puedo obtenerlos sin duplicidades, pero la idea es que si encuentra un registro duplicado que elimine a ambos no que me deje uno solo.

Agradezco la ayuda que puedan proporcionarme.
  #4 (permalink)  
Antiguo 30/01/2008, 14:02
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Re: Donde esta mi error sentencia DELETE

Tu idea parece buena voy a aplicarla haber si me da resultado
en todo caso reformulo mi pregunta para hacerla mas corta

Quiero eliminar los registros de 2 tblas cuyo codcateg sea=2, es decir en la tabla subcategoria eliminar todos los registros cuyo codcateg=2 y que elimine la categoria numero 2

Pongo un ejemplo al elimar una categoria llamada hardware los registros relacionados en la tabla subcategoria quedan al aire el no existir la categoria hardware ese el problema que tengo y mas aun si en subcategoria tambien hay registros relacionado a otra tabla llamada producto se estaria almacendo informacion que no me sirve

DELETE FROM categoria,subcategoria
WHERE subcategoria.codcateg=categoria.codcateg
and subcategoria.codcateg=2



Algun experto en mysql
  #5 (permalink)  
Antiguo 30/01/2008, 21:34
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Re: Donde esta mi error sentencia DELETE

Bueno solucione mi problema utilizando subconsultas la cual quedo de la sigte. manera

DELETE FROM producto WHERE codscateg IN (
SELECT codscateg
FROM subcategoria
WHERE codcateg
IN (
SELECT codcateg
FROM categoria
WHERE codcateg =$cod
)
)
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 04:12.