2017-06-14 30 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

相關問題