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
