1
投稿と埋め込みという2つのテーブルがあります。投稿のすべての投稿には、の埋め込み番号が特定の順序で関連付けられている必要があります。このクエリは«Post_embeds»として以下に示す結果を生成、を動作するようです:PostgresでJOINを実行するときに配列内の項目の順序を保持する
SELECT p.id AS pid, array_agg(e.code) AS code
FROM posts p, unnest(p.embeds) embed_id
JOIN embeds e ON e.id = embed_id
GROUP BY p.id;
あなたが見ることができるように、順序が保存されて埋め込まれています。しかし、その後、私はpost_embedsビューを作成し、このビューを照会してみました:
SELECT * FROM post_embeds WHERE pid=1
埋め込み機能の順序は消えていました。私は最初のクエリが結局のところ順序を保持することを保証されていないと思うし、それは偶然のためだけでした。
関連する埋め込みのある投稿を正しく照会し、順序を保持するにはどうすればよいですか?
私は、データがないテキストとしてイメージとして掲載されているという理由だけで、これをupvoteしないでください。 –
'WITH ORDINALITY' *はあなたの問題を解決することができますが、代わりにあなたのスキーマを修正するのはどうですか?あなたは 'post_x_embed(post_id、embed_id、order)'のような接合テーブルを持っていて、外部キーを使うことさえできます... – pozs