SQL查询选取组合选择从多个表
问题描述:
我真的不知道标题应该是什么样的,但这里的问题 我有2个表(实际上更多)SQL查询选取组合选择从多个表
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
可能吗? 我真的不试图做研究(我的意思是搜索),因为我不知道我应该搜索什么关键字
答
当使用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 |
尝试找寻GROUP_CONCAT。 – Scovetta
已经在这里解答:http://*.com/questions/194852/concatenate-many-rows-into-a-single-text-string –
谢谢@Scovetta请发表回复,以便我可以答复 –