使用SingleStore连接两个带有整数字符串的表



假设我们有两张表:动物园和动物。Zoo包含一串表示动物id的整数,例如:' 1,2,3',以及对应的动物表:1:'iguana'等。

create table zoo (zooid int, animals varchar(10));
insert into zoo values
(1,'1,2'),(2,'1,2,4');
create table animals (animalid  int, animal varchar(10));
insert into animals values
(1,'Bear'),(2,'Wolf'),(3,'Pig'),(4,'Lion');

如何连接这两个表,使得对于一个动物园id,动物列是varchar(100)"熊,狮子"?例如:

<表类>动物性的动物tbody><<tr>1"熊,狼">2'熊,狼,狮子'

可以通过内置的SPLIT和TABLE来完成。SPLIT是一个内置功能,它允许您将逗号(或其他分隔符)分隔的列表转换为数组,然后TABLE是一个TVF,将其转换为关系:

select  zooid, 
group_concat(animal) 
from zoo 
join TABLE(SPLIT(zoo.animals,',')) 
join animals on animalid = table_col 
group by 1

最新更新