0

我真的不知道标题应该是什么,但这里的问题是我有 2 个表(实际上更多)

 table a               table b  
id (pk)| country     id(fk)| Branch
------ | ------      ------|--------
01     | Indonesia   01    | Jakarta
                     01    | Bali

如果我这样做select * from a,b where a.id=b.id ,结果将是

id | Country  |Branch
01 | Indonesia|Jakarta
01 | Indonesia|Bali

我希望结果如下

id | Country   | Branch
01 | Indonesia | Jakarta,Bali

可能吗?我并没有真正尝试进行研究(我的意思是搜索),因为我不知道应该搜索什么关键字

4

1 回答 1

0

使用 MySQL 时,GROUP_CONCAT是您正在寻找的功能。

像上面的请求一样设置表格:

create table a (
  `id` int(15) auto_increment primary key,
  `country` varchar(200)
);

create table b (
  `id` int(15) not null,
  `branch` varchar(200),
  foreign key(`id`) references a(`id`)
);

insert into a values (1, 'Indonesia');
insert into b values (1, 'Jakarta');
insert into b values (1, 'Bali');

执行查询:

select a.id, 
    a.country, 
    group_concat(distinct b.branch) as 'branch'
from a 
    left join b on a.id=b.id;

输出:

| id |   country |       branch |
|----|-----------|--------------|
|  1 | Indonesia | Jakarta,Bali |
于 2017-02-17T12:31:16.190 回答