1
我在本地開發環境中編寫了以下查詢,但沒有意識到我的本地dev上的postgres版本是9.3+,但只有9.1生產。我對升級生產postgres猶豫不決。有什麼辦法可以編寫與9.1兼容的以下查詢?我相信row_to_json是問題所在。有9.1相當於?模式是SalesOrders有許多SalesOrderItems。每個SalesOrderItem都有很多mdns。在9.3上運行時,下面給出了一個很好的緊湊嵌套JSON對象。row_to_json on postgres 9.1
select row_to_json(t)
from (select s.*,
(select array_to_json(array_agg(row_to_json(d)))
from (select soi.* , (select array_to_json(array_agg(row_to_json(e)))
from(select m.* FROM "Mdns" m where m."SalesOrderItemId" = soi.id) e) mdns
from "SalesOrderItems" soi where soi."SalesOrderId" =s.id) d
) as order_items
from "SalesOrders" s where s.order_id = 'SO-83562-0185') t
對不起,但json和相關函數在9.2以後的postgresql中: https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.2 –
是否可以編寫這些函數?他們的代碼是在哪裏列出的? – user1175817
順便說一句,'array_to_json(array_agg(row_to_json(d)))'中的'row_to_json'是多餘的。它在沒有這個調用的情況下做你想要的:'array_to_json(array_agg(d))'。 – jpmc26