Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2004
Rakelina Rakelina is offline
Registrado
 
Registrado: may 2004
Posts: 8
Poder: 0
Rakelina Va por buen camino
Usar DELETE relacionando 2 tablas

Hola a todos!!!. He estado mirando los foros y he encontrado como usar delete para borrar registros pero de la misma tabla. Lo que necesito es borrar una tupla pero relacionando dos tablas. Por ejemplo tengo estas tablas

Pedidos Facturas
--------- -----------
IDpedido IDfactura
IDfactura Tipo_factura

lo que querria es borrar los pedidos facilitando el Tipo de factura
He intentado algo asi:

DELETE
FROM Pedidos,Facturas
WHERE Tipo_factura=:ID AND Facturas.IDfactura=Pedidos.IDfactura

Pero esto no funciona.
Alguien tiene una idea o me puede ayudar???.


Muchas gracias a todos.
Responder Con Cita
  #2  
Antiguo 21-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
El delete que pides va a elimiar reguistros de una sola tabla, pero cuando exista una relación con la otra. Esto lo puedes solucionar con la sentencia IN o EXISTS:
Código SQL [-]
DELETE FROM FACTURAS
WHERE TIPO_FACTURA = :ID
AND EXISTS (SELECT 1 FROM PEDIDOS WHERE FACTURAS.ID = PEDIDOS.ID)

(no se si precisamente quieres que haga lo que hace esta consulta pero esa es la idea)
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 21-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Rakelina
lo que querria es borrar los pedidos facilitando el Tipo de factura
Me perdí ese detalle!

Bueno, la consulta evidentemente es al revés, pero creo que con ese ejemplo puedes resolverlo.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 21-05-2004
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
DELETE
FROM Pedidos
WHERE Tipo_factura=:ID
AND Facturas.IDfactura = (SELECT IDfactura FROM Facturas)


Creo que te valdra.
Responder Con Cita
  #5  
Antiguo 22-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Lo siento hermes, pero esto borraria todos los pedidos para los que exista al menos una factura, no???. Ademas en lugar del = debiera tener el operador in, de lo contrario, al existir mas de una factura en la tabla, la sentencia tendria que devolver un error, puesto que no se puede aplicar el = a un conjunto de registros.

Yo creo que con lo ya aportado por delphi.com.ar debiera estar en capacidad de resolverlo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate

Última edición por jachguate fecha: 22-05-2004 a las 04:09:16. Razón: Mejorar mi comentario
Responder Con Cita
  #6  
Antiguo 22-05-2004
Rakelina Rakelina is offline
Registrado
 
Registrado: may 2004
Posts: 8
Poder: 0
Rakelina Va por buen camino
Hola!!!!!!
Gracias a todos por la rapidas respuestas, ire probando lo que me habeis dicho a ver que ocurre.
Saluditos.
Rachel
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:08:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi