2017-06-14 49 views
1

表1:员工如何将所有列从一个表集成到使用另一个表中的一列MySQL的

name| mobile| location 
alex| 123 | australia 
john| 456 | paris 
kohl| 678 | australia 

表2:就业

id|location |data 
1 |australia|[{"name":"alex","mobile":"123"},{"name":"kohl","mobile":"678"}] 
2 |paris |[{"name":"john","mobile":"456"}] 

我有两个表名为“雇员”和“就业”。我如何将雇员表的所有列值放入就业表的一列中,如表2所示。我是SQL查询的新手。我真的不知道如何进行。任何指针和建议表示赞赏。

+0

你并不需要。看看如何使用'JOIN' – serakfalcon

回答

0

您可以采用如下方案使用CONCATGROUP_CONCAT得到这样的结果:

SELECT location, CONCAT("[", GROUP_CONCAT(CONCAT('{"name":"', name, '","mobile":"', mobile, '"}')), "]") AS data 
FROM employee 
GROUP BY location 

演示:http://sqlfiddle.com/#!9/ab25ee/2/0

JOINemployee表与employment可以使用以下解决方案:

SELECT employment.id, employment.location, CONCAT("[", GROUP_CONCAT(CONCAT('{"name":"', name, '","mobile":"', mobile, '"}')), "]") AS data 
FROM employment INNER JOIN employee ON employment.location = employee.location 
GROUP BY id, location 

演示:http://sqlfiddle.com/#!9/12f9c9/1/0

相关问题