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

Responder a