1
이 쿼리는 일부 행을 업데이트하고 RETURNING
절에 업데이트 된 행을 반환합니다. 그러나 내부 쿼리에 ORDER BY mycolumn
을 지정 했더라도 RETURNING
에 의해 반환 된 행은 정렬되지 않습니다.Postgres RETURNING 절과 조인 및 순서
UPDATE mytable SET status = 'A'
FROM
(
SELECT id FROM mytable
WHERE status = 'B'
ORDER BY mycolumn
LIMIT 100
FOR UPDATE
) sub
JOIN jointable j ON j.id = sub.id
WHERE mytable.id = sub.id
RETURNING *
은 내가 JOIN
후 또는 WHERE
후 같은 외부 쿼리에 ORDER BY
을 퍼팅 시도,하지만 두 경우 모두에서 오류가 발생합니다. 원하는 순서로 행을 반환하도록하려면 어떻게해야합니까?
(A 비슷한 질문이 Update Returning Order by in postgresql에 대답했다하지만은 ORDER, 조인에 포함되지 않습니다.)
내가 얻을 오류 "mycolumn"BY'ORDER은 ambiguous'입니다 . 마지막 '주문'을 꺼내면 오류가 없습니다. 그래서 내부의'ORDER BY'는 괜찮습니다. 에러를내는 것은 바깥 쪽입니다. 조인의 두 테이블에 모두 'mycolumn'이 있기 때문입니다. 그럼 주문은 어떻게 작동합니까? – user779159
RETURNING * 대신 필요한 열을 적어 두십시오. – cybernetic87
예 : j.id, sub.mycolumn 반환, 특정 별칭을 사용해야 함을 기억하십시오 – cybernetic87