У меня есть очень простая таблица
create table foo (id int);
create table bar (id int, name text);
insert into foo(id) values (1), (2);
insert into bar(id, name) values (1, 'a'), (1, 'b'), (2, 'c'), (2, 'd'), (2, 'e');
, и я хочу объединить bar.name
для каждого foo
, но с ограниченным числом bar.name
.
Например, чтобы ограничить 2, он должен вернуть
id | names
1 | a,b
2 | c,d
Без ограничения, я знаю, я могу просто написать это так
select id, group_concat(name) as names from foo natural join bar group by id;
И это просто дает мне
id | names
1 | a,b
2 | c,d,e
Но я понятия не имею, как ограничить name
s, которые проходят мимо group_concat.
Также, как я могу заказать name
s, которые проходят до group_concat
?