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

¿Es posible realizar una consulta de este tipo?

Estas en el tema de ¿Es posible realizar una consulta de este tipo? en el foro de Mysql en Foros del Web. Hola a todos! Me encuentro en una situación en la que estoy utilizando muchisimo código para una acción muy simple, y tal vez pueda resumirlo ...
  #1 (permalink)  
Antiguo 21/12/2007, 09:39
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Busqueda ¿Es posible realizar una consulta de este tipo?

Hola a todos!

Me encuentro en una situación en la que estoy utilizando muchisimo código para una acción muy simple, y tal vez pueda resumirlo todo con una consulta. Les comento cómo es mi BD y qué quiero hacer:


Tengo estas tablas

AUTOMOVIL
id_auto
nombre


MOTOR
id_motor
id_auto
nombre

CARBURADOR
id_carburador
id_motor
nombre


Como verán, un AUTO tiene un MOTOR, que a su vez tiene un CARBURADOR (o más).

Supongamos que yo tengo el ID de un carburador (id_carburador) y quiero eliminar el auto al que le pertenece. ¿Hay alguna alternativa a hacer varias consultas hasta obtener el ID_AUDO y luego hacer el delete? es decir.. ¿puedo hacer algo asi como joins para eliminar todo ó al menos obtener el ID_AUTO con una cantidad de consultas reducida?


¡MUCHAS GRACIAS!

edu
  #2 (permalink)  
Antiguo 22/12/2007, 18:14
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: ¿Es posible realizar una consulta de este tipo?

El DELETE soporta una syntaxis en la que puedes eliminar de varias tablas a la vez los registros que hagan match con una condición WHERE.
Fíjate en: http://dev.mysql.com/doc/refman/5.0/es/delete.html
  #3 (permalink)  
Antiguo 26/12/2007, 10:34
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Re: ¿Es posible realizar una consulta de este tipo?

Estuve leyendo y llegue a armar esta consulta:

delete from automovil, motor, carburador using automovil, motor, carburador where automovil.id_auto = '1' and motor.id_auto = automovil.id_auto and carburador.id_motor = motor.id_motor

Esta consutla funcionó pero me borra solo AUTOMOVIL y MOTOR, no me elimina CARBURADOR

No encuentro la falla, sigo buscando en el manual de MySQL pero no doy en el clavo

¿Alguno sabe por qué falla con la última tabla?

Muchas gracias
  #4 (permalink)  
Antiguo 26/12/2007, 18:13
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: ¿Es posible realizar una consulta de este tipo?

Puff pues ni idea. Podrías darnos un DUMP (si no es muy grande) en el que el error ocurra para probar.

Indica además versión del MySQL.
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:22.