我有两个表“sample”和“processes”,我想在一列中得到给定sample的所有进程。
表“示例”示例:
----------------------------------------
| Sample Table |
| |
|id | timestamp | other columns... |
--------------------------------------
|1 | 24/04/1994 | ... |
|2 | 25/04/1994 | ... |
|... |... | .... |
----------------------------------------
表“过程”示例:
----------------------------------------
| Processes Table |
| |
|id | sample_id | process_name |
--------------------------------------
|1 | 1 | facebook |
|2 | 1 | tinder |
|3 | 1 | clash royale |
|4 | 2 | uno |
|5 | 2 | whatsapp |
|... |... | .... |
----------------------------------------
结果:
------------------------------------------------------------
| Result Table |
| |
|sample_id | timestamp | processes |
-----------------------------------------------------------
|1 | 24/04/1994 | [facebook, tinder, clash royale] |
|2 | 25/04/1994 | [uno, whatsapp] |
------------------------------------------------------------
是否可以通过sql查询来实现这一点?怎样?
p、 s:我知道我可以通过以下方法获得给定样本的所有过程:
SELECT sample_id, timestamp, process_name
FROM sample, processes
WHERE sample.id = processes.sample_id
但这给了我太多不必要的争吵
1条答案
按热度按时间6rvt4ljy1#
你可以试着用
GROUP_CONCAT
与CONCAT
功能。架构(mysql v5.7)
查询#1
db fiddle视图
笔记
我会用
JOIN
而不是使用,
因为JOIN
强调连接两个表的关系。