![]() |
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. |
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:
(no se si precisamente quieres que haga lo que hace esta consulta pero esa es la idea) Saludos! |
Cita:
Bueno, la consulta evidentemente es al revés, pero creo que con ese ejemplo puedes resolverlo. |
DELETE
FROM Pedidos WHERE Tipo_factura=:ID AND Facturas.IDfactura = (SELECT IDfactura FROM Facturas) Creo que te valdra. |
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. ;) |
Hola!!!!!!
Gracias a todos por la rapidas respuestas, ire probando lo que me habeis dicho a ver que ocurre. Saluditos. Rachel |
La franja horaria es GMT +2. Ahora son las 03:05:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi