Я хочу, чтобы сделать запросКак сделать этот sql с запросом array_agg?
select * from projects where user_id = 3;
и в зависимости от того, что это результат r
, мне нужно сделать n
запросов, где n
является длинаl
из r
. например:
| id | project_name | description | user_id |
| 1 | Project A | lorem ipsu | 3 |
| 4 | Project B | lorem ipsu | 3 |
l => 2
затем:
select * from images where project_id = 1;
select * from images where project_id = 4;
Хорошо, вы можете увидеть, где это происходит, если l
слишком велик. Слишком много выбора, слишком много доступа к базе данных. Есть ли лучший способ для достижения конечного результата, так как:
| id | project_name | description | user_id | images |
| 1 | Project A | lorem ipsu | 3 | {imgX,imgY,imgZ} |
| 4 | Project B | lorem ipsu | 3 | {imgA,imgB} |
Я слышал о array_agg
функции на Postgres. Может быть, это ответ? В любом случае, это мои описания стола:
Table "public.projects"
Column | Type | Modifiers
-------------+--------------------------+-------------------------------------------------------
id | integer | not null default nextval('projects_id_seq'::regclass)
name | character varying(255) |
description | character varying(255) |
user_id | integer |
created_at | timestamp with time zone |
updated_at | timestamp with time zone |
Table "public.images"
Column | Type | Modifiers
------------+--------------------------+-----------------------------------------------------
id | integer | not null default nextval('images_id_seq'::regclass)
name | character varying(255) |
url | character varying(255) |
project_id | integer |
created_at | timestamp with time zone |
updated_at | timestamp with time zone |
И заранее спасибо: D
Объясните запрос слишком –
Извините, я думал, что это легко понять. Ред. –