Aislamiento el problema de una consulta mucho más compleja. Aquí el escenario de pruebaNo se puede SELECCIONAR de la cláusula UPDATE RETURNING en postgres
DROP TABLE test;
CREATE TABLE test (
id integer,
description varchar(100)
);
INSERT INTO test(id, description) VALUES (1,'new');
INSERT INTO test(id, description) VALUES (2,'new');
Si funciono con la pregunta:
SELECT * FROM test WHERE id IN (UPDATE test set description='test' RETURNING id)
Estoy recibiendo el siguiente error:
ERROR: error de sintaxis en o por "prueba" cerca LÍNEA 1: SELECT * FROM prueba donde Descripción id (conjunto de prueba ACTUALIZACIÓN = RE 'prueba' ... ^
*** Fehler ** *
ERROR: error de sintaxis en o cerca de "prueba" Estado SQL: 42601 Zeichen: 37
Sin embargo, si yo sólo corro el statemennt
UPDATE test set value='test' RETURNING id
puedo obtener un resultado con 2 filas:
Si substitude ese resultado que tendría una consulta como:
SELECT * FROM test WHERE id IN (1,2);
con el resultado:
1; "prueba" 2; "prueba"
¿Por qué no obtengo el mismo resultado con mi declaración inicial?
tienen que ser comunicados separados. El hecho de que se estén actualizando dos filas es probable que cause problemas, nunca intenté DEVOLVER cuando está volviendo más de una fila/valor. –