en vez del * en la segunda consulta, debes devolver el ide q con el cual
filtrara el delete para eliminar :D

2008/7/31 Agustin Ignacio Genoves <[EMAIL PROTECTED]>

> No tendria q ser algo por el estilo?
>
> DELETE FROM mdi_detalleinstalacion WHERE mdi_id in (SELECT mdi.mdi_id FROM
> mdi_detalleinstalacion mdi INNER JOIN mdm_detalle_material mdm ON
> mdi.mdi_id=mdm.mdi_id WHERE mdi.mdi_id=idmdi);
>
> El día 31 de julio de 2008 10:22, Karina J. <[EMAIL PROTECTED]>
> escribió:
> > Hola a todos, estoy intentando borrar registros de distintas tablas todas
> > relacionadas en una sola consulta, y bueno tengo una funcion a donde le
> > envio un parametro 'idmdi' y quiero eliminar todos los registros de
> varias
> > tablas q tengan a este valor 'idmdi' , la consulta q estoy utilizando es:
> >
> > DELETE FROM mdi_detalleinstalacion WHERE (SELECT * FROM
> > mdi_detalleinstalacion mdi INNER JOIN mdm_detalle_material mdm ON
> > mdi.mdi_id=mdm.mdi_id WHERE mdi.mdi_id=idmdi);
> >
> > pero me sale el sgte error:
> >
> > ERROR:  la subconsulta debe retornar sólo una columna
> > CONTEXT:  sentencia SQL: «delete from mdi_detalleinstalacion where
> (select
> > * from mdi_detalleinstalacion mdi inner join mdm_detalle_material mdm on
> > mdi.mdi_id=mdm.mdi_id where mdi.mdi_id= $1 )»
> > PL/pgSQL function "borrar_detalleinstalacion" line 5 at SQL statement
> >
> > La idea es eliminar registros en una sola consulta.
> >
> > --
> > Saludos,
> > Karina
> >
> >
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
>         http://www.postgresql.org/docs/faqs.FAQ.html
>



-- 
Miguel Panuera C.
Developer
mpanuera[arroba]gmail[punto]com

Responder a