0
PostgreSQLの関数に左結合を使用して2つのテーブルからカスタムjsonを構築しようとしていますが、機能しません。JSONオブジェクト内のPostgreSQLの配列
テーブル構造:
ポスト
id | title | description
postPhoto
id | postId (FK) | name
JSON例:
{
postId: 1,
title: ''
description: '',
postPhotos: [
{id: 1, name: 'photo1.png'},
{id: 1, name: 'photo2.png'},
]
}
SQL関数:
$BODY$DECLARE
success boolean;
msg text;
var_most_recent json;
BEGIN
SELECT to_json(array_agg(t)) INTO var_most_recent FROM (
SELECT *
(SELECT to_json(array_agg(t)) FROM (
SELECT * FROM postPhoto AS PP WHERE post.id = PP."postId"
)t)
FROM post
ORDER BY id DESC LIMIT 10
)t;
success = TRUE; msg = 'Successfully Returned Post data';
RETURN (SELECT json_build_object(
'success', success,
'msg', msg,
'body', json_build_object(
'mostRecent', var_most_recent
)
));
END;$BODY$
これは動作しますが、私はそうJSONは次のようになり10でLIMITを持ってどこがいけない原因私は、アレイ内の複数の記事をラップする必要があります:ここで私はそれを行うだろうかだ のhttp:/ /pastebin.com/W3MSm8fh – Jazzy
問題はありません。別の 'SELECT'クエリでラップするだけです。更新された答えを見てください。 – redneb
postphotoがnullでない投稿を選択するのに手伝ってもらえますか – Jazzy